Как залить бота на heroku
Перейти к содержимому

Как залить бота на heroku

  • автор:

Как разместить бота на heroku?

введите сюда описание изображения

Делаю по этому мануалу http://blizzy.ru/telegram/razmesaem-bota-na-platforme-heroku, только у меня бот на python при вводе команды git push heroku master вижу следующее:

 Build Log -----> Failed to detect set buildpack https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/python.tgz More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure ! Push failed 

В чем дело? Как исправить? Если можно, пожалуйста, объясните, как можно проще.
Отслеживать
user181100
задан 31 окт 2016 в 15:49
167 1 1 золотой знак 3 3 серебряных знака 13 13 бронзовых знаков
Ваша ссылка на мануал не работает, а очень хотелось бы! 🙂
23 ноя 2016 в 7:22
Пустой файл requirements.txt есть, но как в него прописать зависимости?
25 апр 2018 в 9:11
25 апр 2018 в 9:38

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Heroku не понял, что у вас там приложение на Python ( Failed to detect set buildpack ), потому не знает, как его собрать и запустить, и поэтому отказывается его в таком виде принимать.

Согласно странице о поддержке Python, чтобы Heroku его корректно распознал, там должен быть в корне файл requirements.txt , хотя бы пустой (если нет зависимостей):

The Heroku Python Support will be applied to applications only when the application has a requirements.txt in the root directory. Even if an application has no module dependencies, it should include an empty requirements.txt to document that your app has no dependencies.

A requirements.txt file must be present at the root of your application’s repository.

Деплой бота на сервере Heroku

Может кто—нибудь дать инструкцию, как развернуть бота на сервере heroku (написанном на python )? Спасибо заранее.

Отслеживать

5,756 3 3 золотых знака 23 23 серебряных знака 44 44 бронзовых знака

задан 22 окт 2018 в 8:00

518 1 1 золотой знак 6 6 серебряных знаков 19 19 бронзовых знаков

Официальную документацию читали? devcenter.heroku.com/articles/getting-started-with-python

22 окт 2018 в 8:17

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

  • Первым делом создайте Git репозиторий в папке с ботом: git init
  • Войдите в аккаунт Heroku : heroku login
  • Создайте приложение: heroku create appname —region eu
  • Создайте файл Procfile с содержимым: bot: python main.py
    • Если бот на веб-хуках, замените bot на web . Но на бесплатном тарифе, бот будет засыпать каждые 30 минут если не будет подключений, по этому на Heroku free лучше держать ботов на лонг-поллинге. Но проблема с засыпанием веб приложения решается с помощью http://kaffeine.herokuapp.com/.
    • Теперь наша папка выглядит приблизительно так: Procfile main.py requirements.txt

    Отслеживать

    ответ дан 22 окт 2018 в 8:14

    Pavel Durmanov Pavel Durmanov

    5,756 3 3 золотых знака 23 23 серебряных знака 44 44 бронзовых знака

    22 окт 2018 в 8:50

    @Midnight Вы в Procfile точно bot указали?

    22 окт 2018 в 8:54

    Нет, у меня там web написано

    22 окт 2018 в 8:55

    @Midnight А нужно bot

    22 окт 2018 в 8:56

    Не подскажете почему на серваке вываливается ошибка? 2018-10-23T15:06:30.166700+00:00 app[bot.1]: File «/app/.heroku/python/lib/pytho n3.6/site-packages/aiogram/utils/exceptions.py», line 116, in detect 2018-10-23T15:06:30.166702+00:00 app[bot.1]: raise err(cls.text or description) 2018-10-23T15:06:30.166712+00:00 app[bot.1]: aiogram.utils.exceptions.Terminated ByOtherGetUpdates: Conflict: terminated by other getupdates request; make sure t hat only one bot instance is running

    Бесплатный хостинг Heroku для Python ботов — настройка с нуля

    • Переходим на официальный сайт Heroku, сразу в раздел регистрации
    • Заполняем поля в форме, проходим верификацию и нажимаем CREATE FREE ACCOUNTРегистрация аккаунта в Heroku
    • Появится окно ниже, нужно подтвердить аккаунт. Для этого идём на почту, которую указывали при регистрации, находим письмо от Heroku нажимаем на ссылку в письме. Подтверждение аккаунта heroku
    • После нажатия ссылки из письма откроется форма для создания пароля — укажите его и нажмите SET PASSWORD AND LOG INСоздание пароля heroku
    • После создания пароля, автоматически должна пройти авторизация и открыться окно ниже, если открылась страница с надписью Page Not Found то просто снова перейдите по heroku.com и должно появится окно ниже

    Подтверждение терминов сервиса heroku

    Переходим в самый низ и нажимаем Accept

Стартовое окно после регистрации heroku

Регистрация завершена. Перед вами стартовое окно для создания приложения

ШАГ 2. Регистрация в Github.com

Регистрируемся на официальном сайте Github, там все интуитивно понятно. Но если возникнут какие-то трудности, можно воспользоваться инструкцией регистрации в Github.com

ШАГ 3. Установка Git

Окно установки Git

  • Переходим на официальный сайт и скачиваем Git для Windows
  • Запускаем скачанный файл, жмем ВЕЗДЕ Next, обязательно убедитесь, что стоит галочка напротив Windows Explorer integration

ШАГ 4. Установка Python

Если вдруг по каким то причинам у вас еще не установлен Python, то установите согласно инструкции ниже, иначе переходите сразу к ШАГУ 5.

  • Переходим на официальный сайт и скачиваем Python последней версииСтраница скачивания Python
  • Запускаем скачанный файл, обязательно убедитесь, что стоит галочка напротив Add Python 3.10 to PATH!
    И жмем Install nowОкно установки Python

Готово, далее пойдет установка и считаем что этот шаг завершен, Python установлен идем далее

ШАГ 5. Написание Python кода

Теперь напишем небольшой код Python программы, которая будет обрабатывать наши запросы на сервер, чтобы проверить корректно ли мы настроили наш бесплатный вебсервер

Открытие консоли Windows

  • Создайте папку, в которой будет храниться проект
  • Зайдите в созданную папку зажмите клавишу Shift + нажмите правой кнопкой мыши по пустой папке и нажмите на Open PowerShell window here
  • Чтобы не засорять свой python установленный на ПК разными ненужными пакетам, принято создавать виртуальную машину и далее всю работу и запуск кода осуществлять в ней. Создадим виртуальную машину, написав команду ниже:

python -m venv myvenv

Создание venv

Не должно быть никаких ошибок, по итогу в папке проекта должна появиться папка myvenv
Запустим виртуальную машину, введя команду ниже:

myvenv/Scripts/activate

Ошибка запуска venv cannot be loaded because running scripts is disabled on this system

ВАЖНО! Может возникнуть ошибка: cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170. для её устанения введите команду ниже, нажмите Enter и после введите «Y» и нажмите Enter, затем снова попробуйте запустить виртуальную машину снова:

Set-ExecutionPolicy Unrestricted -Scope Process

Активированный venv python

Если в консоли появилась надпись (myvenv) в начале строки, то значит машина запустилась

Теперь установим Flask для приема запросов и обработки их на Python и установим Gunicorn для работы веб сервера на Heroku на нашу машину, введя команды ниже:

pip install flask
pip install gunicorn

Создан файл app.py

  • Все готово для написания кода, создадим python файл с названием app.py, в котором будет наша программа
  • Открываем файл любым текстовым редактором, например в блокноте, и вставьте код ниже, сохраните изменения:
    from flask import Flask, json, request
    import logging

    pip freeze > requirements.txt

    Результат:
    Файл requirements txt

  • Создайте файл без расширения с названием Procfile и пропишите в нем код ниже (он нужен для внутренней работы Heroku):
    web: gunicorn app:app
    Результат:
    Создание procfile
  • Создайте файл без названия, но с раширением .gitignore и пропишите в нем название папки с виртуальной машиной, чтобы она не ушла в Git (ненужный хлам)
    Создание gitignore
  • И на последок, по желанию, создайте файл Readme.md , в нем можете написать о себе или о своем проекте и другие люди, перейдя на вашу станицу в Github, смогут больше о вас узнать
    Создание readme md
  • Шаблон программы python для heroku

    Самое сложное позади, в результате должна получиться структура проекта как на скриншоте ниже:

    ШАГ 6. Перенос проекта с ПК в Github

    • Авторизовываемся в GitHub и в верху слева нажимаем Create repositoryСоздание репозитория в GitHub
    • Заполняем Repository name, по желанию Description (описание) и нажимаем Create repositoryЗаполнение формы создания репозитория в GitHub
    • После создания откроется страница с командами для загрузки проекта в Github ниже — не закрывайте её! Она еще пригодится!Команды для загрузки файлов в GitHub
    • Настройте доступ в Github через SSH по этой инструкции. Если не хотите, то в предыдущем пункте выберите не SSH, а HTTPS!
    • Возвращаемся в папку с проектом и запускаем Git bash Запуск Git в проекте
    • Прописываем команды ниже:

    git commit -m «first commit»

    Строка подключения удаленного репозитория в git

    Теперь вернитесь на страницу Github, скопируйте выделенную строку и вставьте её в Git bash Последняя команда:

    git push -u origin master

    Иницииация проекта в git

    Пример ввода всех команд:

    Демонстрация файлов в Github

    Если вы все сделали правильно, то обновив страницу в Github, на ней должны отобразиться файлы проекта

    ШАГ 7. Настройка проекта в Heroku

    • Авторизуемся на сайте heroku, на главной странице нажимаем конпку Create new appСоздание нового приложения heroku
    • Введите название вашего приложения и выберите регион (для России выбираем europe) Создание нового приложения heroku ввод названия
    • Переходим в раздел Deploy, нажимаем Connect to GitHubВыбор синхронизации через Github
    • Откроется дополнительная секция, снова нажимаем кнопку Connect to GitHubВыбор синхронизации через Github нажатие кнопки
      В полявившемя окне нажимаем Authorize herokuHeroku авторизация в Github
      Вводим пароль от Github Heroku авторизация в Github ввод пароля
    • Далее должен появится ваш репозиторий, чтобы найти наш проект нажимаем Search, после того как проект будет найдем нажимаем ConnectСинхронизации проекта GitHub с Heroku
      Пример успешного подключения:Синхронизации проекта GitHub с Heroku пример успешного подключения
    • Теперь активируем автоматическую загрузку в heroku любых изменений, которые отправляются в Github, для этого опускаемся ниже и нажимаем Enable Automatic DeploysHeroku включение автоматического deploy
    • Загрузим проект из Github на heroku, нажав Deploy Branch (делается единожды, дальше загрузка будет автоматическая) Загрузка проекта из GitHub в heroku
    • Ждем пару минут, пока проект загрузится в Heroku, проверить что проект загружен можно, посмотрев логи, перейдя в More->View logs — там должна появится строчка Build succeded.
      Heroku открытие логов
      p.s. в любых ситуациях когда ваше приложение не работает открывайте логи и ищите в них ошибки.
    • Как только проект загружен, переходим в раздел Resources, заходим в изменение Free Dynos, чтобы включить его (по умолчанию выключено всегда) Heroku изменение настроек dyno
      Включаем и нажимаем ConfirmHeroku включение dyno

    Heroku нажатие кнопки для открытия сайта

    Поздравляю! Настройка завершена, чтобы проверить что все работает нажмите Open app

    Heroku открытие сайта

    Должен открыться ваш новый сайт, с тектом Hellow World

    Домашнее задание:

    Поменяйте у себя на ПК в файле app.py текст c Hellow World на любой другой и через Git загрузите изменения на Github. В результате надпись на вашем сайте должна измениться!

    �� Как запустить бота на Heroku с использованием Python? Инструкция и советы

    Как запустить бота на Heroku с использованием Python?

    Если вы хотите развернуть своего бота с использованием Heroku и Python, вам понадобится следовать ряду шагов. В этой статье я подробно объясню, как запустить бота на Heroku с использованием Python.

    Шаг 1: Создание аккаунта на Heroku

    Первым шагом является создание аккаунта на Heroku, если у вас его еще нет. Посетите официальный сайт Heroku и нажмите на кнопку «Sign up» (Зарегистрироваться), чтобы создать новый аккаунт.

    Шаг 2: Установка Heroku CLI

    После успешного создания аккаунта вам понадобится установить Heroku CLI (Command Line Interface) на вашем компьютере. Heroku CLI позволяет взаимодействовать с Heroku через командную строку. Установите Heroku CLI, следуя инструкциям, предоставленным на официальной странице Heroku.

    Шаг 3: Создание нового приложения на Heroku

    Запустите команду «heroku create», чтобы создать новое приложение на Heroku:

     $ heroku create 

    Heroku автоматически назначит уникальное имя вашему приложению. Вы также можете явно указать имя, используя опцию «—name».

    Шаг 4: Создание requirements.txt

    Heroku использует файл «requirements.txt», чтобы определить зависимости вашего проекта. Создайте файл «requirements.txt» в корневом каталоге вашего проекта и укажите все необходимые зависимости. Например, если ваш бот требует библиотеку «discord.py», добавьте следующую строку в файл «requirements.txt»:

     discord.py 

    Убедитесь, что все зависимости правильно указаны и имеют правильные версии.

    Шаг 5: Создание файла Procfile

    Procfile — это текстовый файл, который указывает Heroku, какой файл должен быть запущен для вашего приложения. Создайте файл с именем «Procfile» в корневом каталоге вашего проекта и добавьте следующую строку:

     worker: python bot.py 

    В этом примере предполагается, что ваш основной файл приложения называется «bot.py». Замените «bot.py» на имя вашего основного файла.

    Шаг 6: Инициализация Git-репозитория

    Heroku использует Git для развертывания приложений. Инициализируйте Git-репозиторий в корневом каталоге вашего проекта с помощью следующей команды:

     $ git init 

    Шаг 7: Добавление файлов в Git

    Добавьте все файлы вашего проекта в Git-repo. Выполните следующую команду, чтобы добавить все файлы:

     $ git add . 

    Шаг 8: Создание коммита в Git

    Создайте коммит в Git с помощью следующей команды:

     $ git commit -m "Initial commit" 

    Шаг 9: Сопряжение Git-репозитория с Heroku

    Свяжите ваш Git-репозиторий с Heroku, используя следующую команду:

     $ heroku git:remote -a ваше_имя_приложения 

    Замените «ваше_имя_приложения» на фактическое имя вашего приложения на Heroku.

    Шаг 10: Развертывание приложения

    Теперь вы готовы развернуть ваше приложение на Heroku. Используйте следующую команду:

     $ git push heroku main 

    Heroku автоматически развернет ваше приложение и установит все зависимости, указанные в файле «requirements.txt». Вы увидите вывод в командной строке, указывающий на успешное развертывание вашего приложения.

    Шаг 11: Проверка логов приложения

    После успешного развертывания вы можете проверить логи вашего приложения с помощью следующей команды:

     $ heroku logs --tail 

    Вы увидите журнал всех событий, происходящих в вашем приложении на Heroku.

    Шаг 12: Масштабирование приложения

    Вы можете масштабировать ваше приложение на Heroku, чтобы обеспечить его лучшую производительность. Используйте следующую команду, чтобы масштабировать количество воркеров (dynos):

     $ heroku ps:scale worker=1 

    Замените «worker» на тип вашего приложения, если он отличается.

    Шаг 13: Проверка состояния приложения

    Вы можете проверить состояние вашего приложения на Heroku с помощью следующей команды:

     $ heroku ps 

    Вы увидите информацию о текущем состоянии вашего приложения.

    Шаг 14: Наслаждайтесь запуском вашего бота на Heroku!

    Поздравляю! Ваш бот успешно запущен на Heroku с использованием Python. Теперь вы можете наслаждаться своим ботом и разрабатывать его дальше.

    В этой статье я детально объяснил, как запустить бота на Heroku с использованием Python. Надеюсь, что эта информация была полезной для вас. Удачи в разработке вашего бота!

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *