我正在尝试将一个相当简单的Flask应用程序部署到Heroku的雪松堆栈,但我一直看到以下错误:
2012-08-09T22:37:49+00:00 heroku[web.1]: State changed from crashed to starting
2012-08-09T22:37:52+00:00 heroku[web.1]: Starting process with command `gunicorn pytips.app:create_app() -b 0.0.0.0:42152 -w 3`
2012-08-09T22:37:53+00:00 app[web.1]: bash: -c: line 0: syntax error near unexpected token `('
2012-08-09T22:37:53+00:00 app[web.1]: bash: -c: line 0: `gunicorn pytips.app:create_app() -b 0.0.0.0:42152 -w 3'
我把它作为我的Procfile:
web: gunicorn pytips.app:create_app() -b 0.0.0.0:$PORT -w 3
当我通过运行foreman start在本地测试时,一切正常.如果工头在当地没有问题,为什么Heroku有问题?
更新:我也尝试过使用heroku运行测试.这是产生的结果:
heroku run --app pytips gunicorn pytips.app:create_app() -b 0.0.0.0:$PORT -w 3
没有给我什么.
heroku run --app pytips 'gunicorn pytips.app:create_app() -b 0.0.0.0:$PORT -w 3'
给我heroku:108:找不到命令:-b.
最佳答案 我目前的解决方案是这样的:我逃脱括号,例如,
web: gunicorn pytips.app:create_app\(\) -b 0.0.0.0:$PORT -w 3
虽然这完全爆炸在我的本地盒子上,它似乎只是在Heroku的系统上工作.我仍然希望Heroku的支持团队可以弄清楚它为什么在一个地方工作,而不是另一个地方.在那之前,我将使用未转义的版本在本地进行测试,然后在推送到Heroku之前将逃脱放回去.