我正在尝试在我的heroku服务器上运行一个简单的hello world python程序。我是heroku的新手。我能够成功地将我的脚本部署到heroku。 我的python脚本和procfile如下所示,
hi.py
print("hello world")
Procfile
web: python hi.py
当我在终端上运行heroku run web
时,我输出了“Hello world”作为输出。但是当我尝试使用heroku web url运行应用程序时,它显示以下错误。
应用程序错误应用程序和页面中发生错误 无法提供服务。请稍后再试。
我在这里做错了什么?我是heroku& amp;的新手它的概念,请做好。
答案 0 :(得分:8)
Heroku上有three types of dyno configurations:
如果您对运行脚本感兴趣,请不要关心接收网络流量,也不要排队等待处理,然后 One-off dynos 很可能是你想要使用的。这对数据库迁移或备份以及诸如此类的东西很有用。
下面的最小例子。
这假设您已经在Heroku上创建了应用程序,并且能够从命令行使用Herolu CLI。
最小的“hello world”Python脚本将如下所示。只需要2个文件:
requirements.txt
必填,但可以留空。task.py
的print("hello world")
然后部署到Heroku,例如:
git add .;
git commit -m "My first commit";
git push heroku master
之后,您将能够使用heroku run python task.py
运行您的脚本(并且应该在输出中看到期待已久的hello world
。)
如果您想在特定时间运行程序,请使用免费的Heroku Scheduler插件。
仅供参考,Procfile
是可选的。如果您将其设置为hello: python task.py
,那么您只需使用heroku run hello
即可运行您的程序。
(请注意,将requirements.txt
留空会在部署时触发You must give at least one requirement to install (see "pip help install")
警告。但这只是一个警告,但并不妨碍正确部署该程序。)
答案 1 :(得分:6)
我不同意并声明你想要烧瓶
<强> main_app.py 强>
import flask
app = flask.Flask(__name__)
@app.route("/")
def index():
#do whatevr here...
return "Hello Heruko"
然后将您的procfile更改为web: gunicorn main_app:app --log-file -