我可以将Heroku用作Python服务器吗?

时间:2016-02-25 23:44:07

标签: python heroku

我的网络主机没有python,我正在尝试构建一个机器学习应用程序。我知道heroku允许你使用python。我想知道我是否可以使用heroku作为python服务器?就像我会让heroku为我做所有的python处理并使用我的常规域来做其他事情。

3 个答案:

答案 0 :(得分:2)

是的,一开始可能会很痛苦,但一旦确定,我会说Heroku是最容易连续部署的平台。然而,它直观 - 不要尝试,只是采取刺伤的方式。在它;按照教程,尝试理解为什么Heroku按照它的方式工作。

docs之后是一个不错的选择; Heroku在很大程度上都有很好的文档。

这是部署到Heroku的通用工作流程:

  1. 在本地创建项目并使用virtualenv进行安装/管理 库。
  2. 在您的基础目录中初始化一个git存储库 Python项目;创建一个heroku远程(heroku create
  3. 创建一个 Heroku在gunicorn启动时使用procfile(或参见 使用waitress / etc)的选项;这是Heroku使用它来开始你的过程
  4. cd到您的基地目录;冻结 你的virtualenv(pip freeze > requirements.txt)和添加/提交 requirements.txt。这告诉Heroku需要安装哪些软件包,这是部署工作的要求。如果您尝试运行Python项目并且缺少必需的软件包,则应用程序将无法启动,Heroku将显示内部服务器错误。
  5. 每当进行更改时,git commit您的更改和git push heroku master将所有提交推送到Heroku。这将导致Heroku使用更新的部署重新启动服务器应用程序。如果发生故障,您可以使用heroku rollback返回上次部署。
  6. 实际上,它并不是屁股的痛苦,只是特别的。了解Heroku的规则后,您就可以轻松地使用命令行git命令管理部署。

    一个警告 - 如果部署Django,Flask应用程序等,则有一些特殊因素需要考虑;具体而言,非项目文件(包括资产)不应存储在Heroku上,因为Heroku会定期重新启动你的d​​yno' (服务器实例),将整个项目从最新的推送加载到Heroku。使用Django和Flask,这通常意味着从Amazon S3存储桶提供资源/静态/媒体文件。

    话虽如此,如果您正确使用virtualenv,配置您的数据库,并遵循Heroku实践来提供文件和提交更新,它是(imho)绝对最好的平台,易于使用,可靠的正常运行时间,以及 - 上油滚动部署。

    最后一个提示 - 如果您正在创建Django应用程序,我建议您从this样板开始创建项目。我有一个用于新项目的自定义项目,可以在几分钟内启动和发布项目。

答案 1 :(得分:0)

是的,你可以使用Heroku作为python服务器。我在Heroku上放了一个Python Flask服务器,但这很痛苦:Heroku似乎有一些困难,并且在解决这些问题上有很多相互矛盾的建议。我最终得到了它的工作,无法记住哪个网页有最终的答案,但你可能会看到这个:http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-xviii-deployment-on-the-heroku-cloud

答案 2 :(得分:-1)

你是否使用twisted?

在Heroku上完成了Python服务器

我不知道这是否可以帮到你。

我在Python上看到了文档' Heroku入门'是关于Django。

Heroku可以使用来自docs

的Twisted

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

django-twisted-server已经在django中扭曲,但它不是在Heroku上。