Heroku上的Django:ImportError:无法导入名称get_path_info

3 投票
2 回答
1236 浏览
提问于 2025-04-18 12:26

我在本地运行我的Django应用时没有遇到任何问题,但在Heroku上却出现了一个错误,提示ImportError: cannot import name get_path_info,我不知道该怎么解决。

这是我的Heroku日志:

    2014-07-07 18:45:45 [18423] [INFO] Starting gunicorn 0.13.4
    2014-07-07 18:45:45 [18424] [ERROR] Exception in worker process:
    Traceback (most recent call last):
      File "/lib/python2.7/site-packages/gunicorn/arbiter.py", line 456, in spawn_worker
        worker.init_process()
      File "/lib/python2.7/site-packages/gunicorn/workers/base.py", line 100, in init_process
        self.wsgi = self.app.wsgi()
      File "/lib/python2.7/site-packages/gunicorn/app/base.py", line 101, in wsgi
        self.callable = self.load()
      File "/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 24, in load
        return util.import_app(self.app_uri)
      File "/lib/python2.7/site-packages/gunicorn/util.py", line 241, in import_app
        __import__(module)
      File "/app/wsgi.py", line 2, in <module>
        from dj_static import Cling
      File "/lib/python2.7/site-packages/dj_static.py", line 7, in <module>
        from django.core.handlers.base import get_path_info
    ImportError: cannot import name get_path_info
    2014-07-07 18:45:45 [18424] [INFO] Worker exiting (pid: 18424)
    18:45:46 web.1  | 2014-07-07 18:45:46 [18423] [INFO] Shutting down: Master
    18:45:46 web.1  | 2014-07-07 18:45:46 [18423] [INFO] Reason: Worker failed to boot.

我的procfile文件:

web: gunicorn app.wsgi

还有我的app/wsgi.py文件:

from django.core.wsgi import get_wsgi_application
from dj_static import Cling
application = Cling(get_wsgi_application())

2 个回答

0

试试这三个步骤:

  1. 安装最新版本的 dj-static,输入命令 pip install dj-static==0.0.6

  2. 安装 Heroku 工具包,输入命令 pip install django-toolbet

  3. 确保 requirements.txt 文件是最新的。

1

试着在你的Virtualenv的requirements.txt文件里设置 dj-static==0.0.6。现在Heroku的Django教程里显示的是0.0.5。你可能在本地使用的是0.0.6,但在Heroku上却不是这个版本。

我已经把这个问题反馈给Heroku,他们的教程现在已经更新,反映了requirements.txt里较新的版本。

撰写回答