Django /gunicorn: ImportError: невозможно импортировать имя get_path_info
Я установил требования для проекта, который я пытаюсь запустить, и они установились нормально. Затем я запустил запуск мастера, у меня появилась эта ошибка, и я не могу понять, в чем здесь проблема. Есть идеи? Я попытался удалить и переустановить dj_static, похоже, ничего не изменилось.
(venv)$ foreman start
16:28:12 web.1 | started with pid 29309
16:28:12 web.1 | 2014-05-12 16:28:12 [29309] [INFO] Starting gunicorn 18.0
16:28:12 web.1 | 2014-05-12 16:28:12 [29309] [INFO] Listening at: http://0.0.0.0:5000 (29309)
16:28:12 web.1 | 2014-05-12 16:28:12 [29309] [INFO] Using worker: sync
16:28:12 web.1 | 2014-05-12 16:28:12 [29312] [INFO] Booting worker with pid: 29312
16:28:12 web.1 | 2014-05-12 16:28:12 [29312] [ERROR] Exception in worker process:
16:28:12 web.1 | Traceback (most recent call last):
16:28:12 web.1 | File "/Library/Python/2.7/site-packages/gunicorn/arbiter.py", line 495, in spawn_worker
16:28:12 web.1 | worker.init_process()
16:28:12 web.1 | File "/Library/Python/2.7/site-packages/gunicorn/workers/base.py", line 106, in init_process
16:28:12 web.1 | self.wsgi = self.app.wsgi()
16:28:12 web.1 | File "/Library/Python/2.7/site-packages/gunicorn/app/base.py", line 114, in wsgi
16:28:12 web.1 | self.callable = self.load()
16:28:12 web.1 | File "/Library/Python/2.7/site-packages/gunicorn/app/wsgiapp.py", line 62, in load
16:28:12 web.1 | return self.load_wsgiapp()
16:28:12 web.1 | File "/Library/Python/2.7/site-packages/gunicorn/app/wsgiapp.py", line 49, in load_wsgiapp
16:28:12 web.1 | return util.import_app(self.app_uri)
16:28:12 web.1 | File "/Library/Python/2.7/site-packages/gunicorn/util.py", line 354, in import_app
16:28:12 web.1 | __import__(module)
16:28:12 web.1 | File "/Users/n/wppdashboard/dashboard/wsgi.py", line 25, in <module>
16:28:12 web.1 | from dj_static import Cling
16:28:12 web.1 | File "/Library/Python/2.7/site-packages/dj_static.py", line 7, in <module>
16:28:12 web.1 | from django.core.handlers.base import get_path_info
16:28:12 web.1 | ImportError: cannot import name get_path_info
16:28:12 web.1 | Traceback (most recent call last):
16:28:12 web.1 | File "/Library/Python/2.7/site-packages/gunicorn/arbiter.py", line 495, in spawn_worker
16:28:12 web.1 | worker.init_process()
16:28:12 web.1 | File "/Library/Python/2.7/site-packages/gunicorn/workers/base.py", line 106, in init_process
16:28:12 web.1 | self.wsgi = self.app.wsgi()
16:28:12 web.1 | File "/Library/Python/2.7/site-packages/gunicorn/app/base.py", line 114, in wsgi
16:28:12 web.1 | self.callable = self.load()
16:28:12 web.1 | File "/Library/Python/2.7/site-packages/gunicorn/app/wsgiapp.py", line 62, in load
16:28:12 web.1 | return self.load_wsgiapp()
16:28:12 web.1 | File "/Library/Python/2.7/site-packages/gunicorn/app/wsgiapp.py", line 49, in load_wsgiapp
16:28:12 web.1 | return util.import_app(self.app_uri)
16:28:12 web.1 | File "/Library/Python/2.7/site-packages/gunicorn/util.py", line 354, in import_app
16:28:12 web.1 | __import__(module)
16:28:12 web.1 | File "/Users/n/wppdashboard/dashboard/wsgi.py", line 25, in <module>
16:28:12 web.1 | from dj_static import Cling
16:28:12 web.1 | File "/Library/Python/2.7/site-packages/dj_static.py", line 7, in <module>
16:28:12 web.1 | from django.core.handlers.base import get_path_info
16:28:12 web.1 | ImportError: cannot import name get_path_info
16:28:12 web.1 | 2014-05-12 16:28:12 [29312] [INFO] Worker exiting (pid: 29312)
16:28:12 web.1 | 2014-05-12 16:28:12 [29309] [INFO] Shutting down: Master
16:28:12 web.1 | 2014-05-12 16:28:12 [29309] [INFO] Reason: Worker failed to boot.
16:28:12 web.1 | exited with code 3
16:28:12 system | sending SIGTERM to all processes
SIGTERM received
(venv)$
3 ответа
Я понял это.
Я либо установил две разные версии, либо изменил какой-то файл при установке. Просто переустановите django в вашем venv, и все заработает.
Для меня проблема была в том, что dj_static
0.0.5
похоже, не очень хорошо играл с Django 1.7. Я повысил до 0.0.6
и это исправило это.
Я работаю на OpenShift и получил ту же ошибку при обновлении с Django 1.6 до 1.7. В моем openshiftstaticfiles.py я внес следующие изменения в раздел "Импорт" в верхней части модуля.
try:
#Django 1.7
from django.core.handlers.wsgi import get_path_info
except ImportError:
#Django 1.6
from django.core.handlers.base import get_path_info
Я не думаю, что я использую 'dj_static', но он использует 'static3', который я вижу в моем файле "setup.py" корневого уровня.