今天Heroku上的所有Python / Django应用程序都停止了工作。
所有这些日志都显示相同的问题。尝试重新启动/构建时,错误日志如下所示。
我尝试在新的本地虚拟环境中重建项目,并且它们在本地运行良好。但是,当将它们推送到Heroku时,它们会遇到此ImportError并拒绝部署。
同样,当我尝试重新启动现有应用程序时,我发现在实例崩溃之前记录了相同的错误。
如果我能提供任何其他信息,请告诉我。
错误日志:
2014-06-03T22:30:05.293788+00:00 heroku[web.1]: State changed from crashed to starting
2014-06-03T22:30:11.509350+00:00 app[web.1]: Traceback (most recent call last):
2014-06-03T22:30:11.509438+00:00 app[web.1]: File "bluewaterads/manage.py", line 22, in <module>
2014-06-03T22:30:11.509536+00:00 app[web.1]: from django.core.management import execute_manager
2014-06-03T22:30:11.509589+00:00 app[web.1]: File "/app/.heroku/venv/lib/python2.7/site-packages/django/core/management/__init__.py", line 8, in <module>
2014-06-03T22:30:11.509644+00:00 app[web.1]: from django.core.management.base import BaseCommand, CommandError, handle_default_options
2014-06-03T22:30:11.509667+00:00 app[web.1]: File "/app/.heroku/venv/lib/python2.7/site-packages/django/core/management/base.py", line 16, in <module>
2014-06-03T22:30:11.509707+00:00 app[web.1]: from django.utils.encoding import smart_str
2014-06-03T22:30:11.509727+00:00 app[web.1]: File "/app/.heroku/venv/lib/python2.7/site-packages/django/utils/encoding.py", line 2, in <module>
2014-06-03T22:30:11.509796+00:00 app[web.1]: import urllib
2014-06-03T22:30:11.509824+00:00 app[web.1]: File "/usr/local/lib/python2.7/urllib.py", line 26, in <module>
2014-06-03T22:30:11.509869+00:00 app[web.1]: import socket
2014-06-03T22:30:11.509886+00:00 app[web.1]: File "/usr/local/lib/python2.7/socket.py", line 47, in <module>
2014-06-03T22:30:11.509919+00:00 app[web.1]: import _socket
2014-06-03T22:30:11.509954+00:00 app[web.1]: ImportError: /app/.heroku/venv/lib/python2.7/lib-dynload/_socket.so: undefined symbol: _PyInt_AsInt
2014-06-03T22:30:13.014774+00:00 heroku[web.1]: State changed from starting to crashed
2014-06-03T22:30:10.241602+00:00 heroku[web.1]: Starting process with command `python bluewaterads/manage.py run_gunicorn 0.0.0.0:33709 -w 4`
2014-06-03T22:30:13.015823+00:00 heroku[web.1]: Process exited with status 1
Requirements.txt:
Django==1.4.1
Mezzanine==1.2.4.1
Pillow==1.7.7
South==0.7.6
bleach==1.1.5
boto==2.5.2
dj-database-url==0.2.1
django-appconf==0.5
django-compressor==1.2
django-s3-storages-utils==0.1.0
django-storages==1.1.5
filebrowser-safe==0.2.11
grappelli-safe==0.2.9
gunicorn==0.14.6
html5lib==0.95
psycopg2==2.4.5
pytz==2012d
Procfile:
web: python bluewaterads/manage.py run_gunicorn 0.0.0.0:$PORT -w 4
答案 0 :(得分:3)
将runtime.txt
与python-2.7.7
添加到项目根目录并重新部署。
Heroku刚刚将运行时更新为python-2.7.7。这篇文章昨天更新: https://devcenter.heroku.com/articles/python-runtimes
[编辑]:这迫使Heroku从头开始重建virtualenv。您可以指定任何运行时。
答案 1 :(得分:3)
部署应用程序时,如果在运行时未使用更新的python-2.7.7。
尝试清除repo缓存。
安装此:
heroku plugins:install https://github.com/heroku/heroku-repo.git
然后运行此命令:
heroku repo:purge_cache -a appname
然后部署您的应用程序。
更多信息: Heroku-repo
答案 2 :(得分:1)
您使用的是默认的Python buildpack吗? Heroku正在更新Stack图像,特别是如果你不使用当前的buildpack,可能会出现不兼容的情况。
要查看您是否使用默认的buildpack,请运行
$ heroku config | grep BUILDPACK_URL
如果您认为这可能是原因,请联系Heroku支持。
答案 3 :(得分:0)
我的heroku应用程序发生了同样的事情,在尝试了一百万件事后,我最终通过升级包括django在内的所有软件包来修复它,根据django / heroku教程添加了wsgi.py文件,并更改了我的proc文件:
web: gunicorn app.wsgi --pythonpath app --log-file -
pythonpath设置很重要,因为我有大量的导入错误和内部服务器错误,因为gunicorn不再拥有我的应用程序的正确路径。