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_static0.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" корневого уровня.

Другие вопросы по тегам