我的网络主机没有python,我正在尝试构建一个机器学习应用程序。我知道heroku允许你使用python。我想知道我是否可以使用heroku作为python服务器?就像我会让heroku为我做所有的python处理并使用我的常规域来做其他事情。
答案 0 :(得分:2)
是的,一开始可能会很痛苦,但一旦确定,我会说Heroku是最容易连续部署的平台。然而,它不直观 - 不要尝试,只是采取刺伤的方式。在它;按照教程,尝试理解为什么Heroku按照它的方式工作。
docs之后是一个不错的选择; Heroku在很大程度上都有很好的文档。
这是部署到Heroku的通用工作流程:
virtualenv
进行安装/管理
库。 heroku create
)gunicorn
启动时使用procfile
(或参见
使用waitress
/ etc)的选项;这是Heroku使用它来开始你的过程cd
到您的基地目录;冻结
你的virtualenv(pip freeze > requirements.txt
)和添加/提交
requirements.txt
。这告诉Heroku需要安装哪些软件包,这是部署工作的要求。如果您尝试运行Python项目并且缺少必需的软件包,则应用程序将无法启动,Heroku将显示内部服务器错误。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 :(得分: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上。