2016-03-06 71 views
2

我已经在我的本地机器上用Python连接到postgres数据库上创建了我的第一个Web应用程序。在我的本地机器上,Web应用程序可以正常工作,所以下一步就是让应用程序进入Internet。Web应用程序在本地机器上工作,但在Heroku上无法工作

这是我开始使用Heroku的地方,在完成一些教程之后,我将我的Web应用程序推到Heroku上,并推送了我的数据库副本。我修改了我的代码,现在它指向Heroku上的数据库而不是本地计算机。

但是,在我的proc文件中尝试了许多不同的变化后,我的网站上仍然出现应用程序错误。有RAN:Heroku的日志 - 尾,我碰到下面的错误日志...

2016-03-06T07:24:19.684867+00:00 heroku[web.1]: Starting process with command `python bin/app.py /usr/local/bin:/usr/bin:/bin` 

2016-03-06T07:24:22.761469+00:00 app[web.1]: ('[email protected]         ', '$1$Kp635oRe$xuPE1/iVdvJcAUzS5LIRF.    ', 36, 'test            ') 

2016-03-06T07:24:23.391570+00:00 app[web.1]: (5, datetime.datetime(2015, 8, 28, 21, 0), datetime.datetime(2015, 8, 20, 8, 0), datetime.datetime(2015, 8, 25, 17, 0), 'To be decided          ', None, 'To be decided          ', None, 'Final            ') 

2016-03-06T07:24:23.391582+00:00 app[web.1]: 2015-08-28 21:00:00 

2016-03-06T07:24:23.391681+00:00 app[web.1]: 5 

2016-03-06T07:24:24.047123+00:00 app[web.1]: (5, datetime.datetime(2015, 8, 28, 21, 0), datetime.datetime(2015, 8, 20, 8, 0), datetime.datetime(2015, 8, 25, 17, 0), 'To be decided          ', None, 'To be decided          ', None, 'Final            ') 

2016-03-06T07:24:24.047165+00:00 app[web.1]: 5 

2016-03-06T07:24:24.047135+00:00 app[web.1]: 2015-08-28 21:00:00 

2016-03-06T07:24:24.705463+00:00 app[web.1]: (5, datetime.datetime(2015, 8, 28, 21, 0), datetime.datetime(2015, 8, 20, 8, 0), datetime.datetime(2015, 8, 25, 17, 0), 'To be decided          ', None, 'To be decided          ', None, 'Final            ') 

2016-03-06T07:24:24.705478+00:00 app[web.1]: 2015-08-28 21:00:00 

2016-03-06T07:24:29.129053+00:00 app[web.1]: File "bin/app.py", line 195, in <module> 

2016-03-06T07:24:29.129044+00:00 app[web.1]: Traceback (most recent call last): 

2016-03-06T07:24:29.129139+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/web/application.py", line 313, in run 

2016-03-06T07:24:29.129112+00:00 app[web.1]:  app.run() 

2016-03-06T07:24:29.129252+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/web/wsgi.py", line 54, in runwsgi 

2016-03-06T07:24:29.129294+00:00 app[web.1]:  return httpserver.runsimple(func, validip(listget(sys.argv, 1, ''))) 

2016-03-06T07:24:29.129248+00:00 app[web.1]:  return wsgi.runwsgi(self.wsgifunc(*middleware)) 

2016-03-06T07:24:29.129344+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/web/net.py", line 76, in validip 

2016-03-06T07:24:29.129375+00:00 app[web.1]:  port = int(port) 

2016-03-06T07:24:29.129400+00:00 app[web.1]: ValueError: invalid literal for int() with base 10: '/usr/local/bin:/usr/bin:/bin' 

2016-03-06T07:24:29.775276+00:00 heroku[web.1]: Process exited with status 1 

2016-03-06T07:24:29.782331+00:00 heroku[web.1]: State changed from starting to crashed 

2016-03-06T11:27:22.484435+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=limeuro2016.herokuapp.com request_id=0567035b-6419-4c45-abaa-aea7d0be7206 fwd="90.210.194.244" dyno= connect= service= status=503 bytes= 

2016-03-06T11:27:22.976331+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=limeuro2016.herokuapp.com request_id=aa3d55d0-7015-4949-8b86-49f6c1dcc68d fwd="90.210.194.244" dyno= connect= service= status=503 bytes= 

很显然,我有很多运行,我需要整理愚蠢的打印报表,但这不应该是这个原因错误。我认为这是由于'port = int(port)'引起的proc文件,但是我看错了地方?

我procfile读取...

web: python bin/app.py $PATH 
port = int(os.environ.get('PORT', 8080)) 
app.run(host='0.0.0.0', port=port) 

任何帮助将非常感激,因为我一直在努力研究解决方案为自己过去的两个星期,并已碰了壁!为什么它在我的本地机器上运行,而不是Heroku!?!

回答

1

根据错误信息,我猜测环境变量PORT设置为'/usr/local/bin:/usr/bin:/bin'

使用命令heroku run printenv列出您的环境变量。

而且,我相信你的procfile应与web: python bin/app.py ${PORT}代替PATH这可能是什么设置PORT的路径开始。

+0

哇。可怕的是我认为我已经花了很多时间在这个上,我只是需要将它从PATH改为PORT,这是修复它的原因。谢谢 – LemusThelroy

相关问题