2016-02-25 2 views
1

У моего веб-хоста нет python, и я пытаюсь создать приложение для машинного обучения. Я знаю, что heroku позволяет использовать python. Мне было интересно, могу ли я использовать героку в качестве сервера python? Как и в случае, я хотел бы, чтобы герой выполнял всю обработку python для меня и использовал мой обычный домен для всего остального.Можно ли использовать Heroku в качестве сервера Python?

+0

Вы пробовали прочитать их [docs] (https://devcenter.heroku.com/articles/getting-started-with-python#introduction)? – IanAuld

ответ

0

Да, вы можете использовать Heroku в качестве сервера python. Я положил сервер Python Flask на Heroku, но это было больно: у Героку, похоже, были некоторые трудности, и было много противоречивых советов по их обходу. В конце концов я получил работу, не помню, на какой веб-странице был окончательный ответ, но вы можете посмотреть на это: http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-xviii-deployment-on-the-heroku-cloud

+1

Как правило, героку - это боль в заднице. Я провел HOURS, пытаясь развернуть приложение django на heroku ... никогда не получал его, чтобы работать безупречно. – erip

2

Да, и это может быть боль сначала, но как только она будет установлена, я бы сказал, что Heroku является самую легкую платформу для постоянного развертывания. Тем не менее, это не интуитивно - не пытайтесь и просто «возьмите удар»; следуйте инструкциям и попытайтесь понять, почему Heroku работает так, как он делает.

Адрес: docs Ставка: По большей части Heroku имеет большую документацию.

Вот обобщенный рабочий процесс для развертывания на Heroku:

  1. Локально, создать свой проект и использовать virtualenv для установки/управления библиотеки.
  2. Инициализировать репозиторий git в базовом каталоге для вашего Проект Python; создать Heroku пульт дистанционного управления (heroku create)
  3. Создать procfile для Heroku использовать при запуске gunicorn (или см варианты использования waitress/и т.д.); это используется Heroku для запуска вашего процесса
  4. cd к базе данных; freeze your virtualenv (pip freeze > requirements.txt) и добавить/зафиксировать requirements.txt. Это говорит Heroku, какие пакеты необходимо установить, что требует вашего развертывания. Если вы пытаетесь запустить проект Python и отсутствуют необходимые пакеты, приложение не сможет запустить, и Heroku отобразит внутреннюю ошибку сервера.
  5. В случае внесения изменений, git commit ваши изменения и git push heroku master, чтобы подтолкнуть все фиксации к Heroku. Это приведет к тому, что Heroku перезапустит серверное приложение с обновленным развертыванием. Если произошел сбой, вы можете использовать heroku rollback, чтобы вернуться к последнему развертыванию.

В действительности, это не боль в попке, просто особая. Зная правила Heroku, вы можете легко управлять развертыванием с помощью команд git командной строки.

Одно предупреждение - при развертывании Django, приложений Flask и т. Д. Есть особенности для учета; в частности, файлы без проекта (включая активы) НЕ должны храниться на Heroku, поскольку Heroku периодически перезапускает ваш «dyno» (экземпляр сервера), загружая весь проект с последнего нажатия на Heroku. С Django и Flask это обычно означает использование ресурсов/статических/медиафайлов из ведра Amazon S3.

Если вы используете virtualenv правильно, предоставляете свои базы данных и следуйте инструкциям Heroku для обслуживания файлов и обновлений, это (imho) абсолютная лучшая платформа для простоты использования, надежного времени безотказной работы и хорошо - свернутые развертывания.

Последний совет - если вы создаете приложение Django, я предлагаю начать проект из this шаблона. У меня есть пользовательский, который я использую для новых проектов, и могу запускать и публиковать проект за считанные минуты.

-1

Вы сделали свой Python Server на Heroku, используя скрученный?

Я не знаю, может ли это вам помочь.

Я вижу, что документ «Начало работы с Heroku с Python» посвящен Django.

Он уверен, что Heroku можно использовать Twisted из docs

Pure Python applications, such as headless processes and evented web frameworks like Twisted, are fully supported.

django-twisted-server покрутил в Джанго, но это не на Heroku.

+0

Пожалуйста, не просто отправьте ссылку на какой-либо инструмент или библиотеку в качестве ответа. По крайней мере, продемонстрируйте [как он решает проблему] (http://meta.stackoverflow.com/a/251605) в самом ответе. –

+0

Извините, я отредактировал. – soysoy

Смежные вопросы