2016-03-06 7 views
2

Я сделал свое первое веб-приложение на своей локальной машине в Python, которое связано с базой данных postgres. На моей локальной машине веб-приложение работает, поэтому следующим шагом для меня было получить приложение в Интернете.Веб-приложение работает на локальной машине, но не работает на Heroku

Здесь я начал использовать Heroku, где после нескольких учебных уроков я нажал мое веб-приложение на Heroku и нажал копию моей базы данных. Я внесла поправки в свой код, чтобы теперь он указывал на базу данных на Heroku, а не на мою локальную машину.

Однако, попробовав много разных вариантов моего procfile, я все еще получаю сообщение об ошибке приложения на своем веб-сайте. Имея Ран: Heroku журналы --tail, я получаю следующее журнал ошибок ...

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= 

Очевидно, у меня есть много глупых заявлений печати, работающих под управлением, что мне нужно привести в порядок, но это не должно быть причиной этого ошибка. Я думаю, что это связано с моим procfile из-за «port = int (port)», но я смотрю не в том месте?

Мой PROCFILE читает ...

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

Любая помощь на этом была бы оценена, как я пытался исследовать Решение себе в течение последних двух недель и врезался в стену! Почему он работает на моей локальной машине, а не на Героку!?!

ответ

1

Согласно сообщению об ошибке, я бы предположил, что для переменной окружения PORT установлено значение '/usr/local/bin:/usr/bin:/bin'.

Перечислите переменные среды, используя команду heroku run printenv.

Кроме того, я считаю, ваш procfile должен начать с web: python bin/app.py ${PORT} вместо PATH, который, вероятно, что установить PORT в путь.

+0

Ничего себе. Страшно думать, что я потратил столько времени на это, и мне просто нужно было изменить его с PATH на PORT, что и зафиксировало его. спасибо – LemusThelroy