2016-02-25 71 views
1

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

+0

您是否试过阅读[docs](https://devcenter.heroku.com/articles/getting-started-with-python#introduction)? – IanAuld

回答

0

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

+1

作为一项规则,heroku是一个痛苦的屁股。我花了几个小时尝试在heroku上部署一个django应用程序...从来没有完美地工作。 – erip

2

是的,它可能是一个痛苦,但一旦设置,我会说Heroku是最持续部署的最简单的平台。然而,它不直观 - 不要尝试只是'刺'一下;按照教程,并尝试了解为什么Heroku以它的方式工作。

docs是一个不错的选择; Heroku大部分都有很好的文档。

这里是广义工作流部署到Heroku的:

  1. 本地,创建项目并使用virtualenv安装/管理 库。
  2. 在Python项目中初始化基本目录中的git存储库以供您的 ;创建的Heroku远程(heroku create
  3. 创建 procfile为Heroku的起始gunicorn当使用(或看到 选项使用waitress /等);这是由Heroku用来启动你的进程
  4. cd到你的基地目录;冻结 您的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中,因为Heroku定期重新启动你的'dyno'(服务器实例),从最新推送到Heroku加载整个项目。使用Django和Flask,这通常意味着从Amazon S3存储桶提供资产/静态/媒体文件。这就是说,如果您正确使用virtualenv,配置您的数据库,并遵循Heroku惯例来提供服务文件和提交更新,那么这是绝对最好的平台,因为它易于使用,可靠的正常运行时间以及良好的滚动部署。最后一个提示 - 如果你正在创建一个Django应用程序,我建议从this样板开始你的项目。我有一个用于新项目的自定义项目,可以在几分钟内启动并发布一个项目。

-1

你是否已经通过使用扭曲在Heroku上完成了你的Python服务器?

我不知道这是否能帮助你。

我看到文档“Python入门Heroku”是关于Django的。

可以肯定的是Heroku的可以使用双绞线从docs

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

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

+0

请不要只是发布链接到一些工具或库作为答案。至少在答案中演示[它如何解决问题](http://meta.stackoverflow.com/a/251605)。 –

+0

对不起,我编辑过。 – soysoy

相关问题