我完成了一个项目(第8周CS50),并希望将其放在网上。它在Cloud9 IDE和本地化Web服务器中工作正常。它" application.py"并使用Flask(由CS50为我配置)。
所以我读了部署,并做了几次在Heroku上部署的尝试。无法让它发挥作用。
错误日志:
python application.py
Procfile(从stackoverflow复制一个): " web:python application.py"
主要application.py: https://github.com/jamesdylangoldstein/sentiments/blob/master/application.py
答案 0 :(得分:1)
部署步骤:
1)Procfile包含:
web: gunicorn application:app
2)在requirements.txt类型中:
gunicorn
答案 1 :(得分:0)
根据您在GitHub上发布的代码,我建议进行一些更改以克服此错误:
在python程序的末尾添加以下内容:
if __name__ == "__main__":
app.run()
确保已定义应用(似乎在您的情况下),并且未在.run()方法中指定 port 参数。如果事先定义端口号,Heroku将崩溃。
确保在 requirements.txt 中指定了所有依赖项。确保正确定义了@James Goldstein定义的Procfile和要求。
某些Web服务器,例如Azure,默认情况下要求将python应用程序命名为 app.py 。我不知道Heroku是否会遇到这种情况,但是对于某些服务器,这可能是个问题。