【发布时间】:2015-02-23 19:30:50
【问题描述】:
我正在尝试在 Dreamhost 上使用 python3 设置 django。
我已经按照他们的文档设置了一个 virtualenv 并安装了所有先决条件。我已经让 runserver 工作了
问题在于乘客设置。错误日志显示我无法导入名为 Cookie 的模块,导致更多错误。
这是回溯:
File "/home/user/path/env/lib/python3.4/imp.py", line 171, in load_source
module = methods.load()
File "<frozen importlib._bootstrap>", line 1220, in load
File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
File "<frozen importlib._bootstrap>", line 1129, in _exec
File "<frozen importlib._bootstrap>", line 1471, in exec_module
File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
File "passenger_wsgi.py", line 17, in <module>
from django.core.wsgi import get_wsgi_application
File "/home/user/path/env/lib/python3.4/site-packages/django/core/wsgi.py", line 2, in <module>
from django.core.handlers.wsgi import WSGIHandler
File "/home/user/path/env/lib/python3.4/site-packages/django/core/handlers/wsgi.py", line 11, in <module>
from django import http
File "/home/user/path/env/lib/python3.4/site-packages/django/http/__init__.py", line 1, in <module>
from django.http.cookie import SimpleCookie, parse_cookie
File "/home/user/path/env/lib/python3.4/site-packages/django/http/cookie.py", line 5, in <module>
from django.utils.six.moves import http_cookies
File "/home/user/path/env/lib/python3.4/site-packages/django/utils/six.py", line 90, in __get__
result = self._resolve()
File "/home/user/path/env/lib/python3.4/site-packages/django/utils/six.py", line 113, in _resolve
return _import_module(self.mod)
File "/home/user/path/env/lib/python3.4/site-packages/django/utils/six.py", line 80, in _import_module
__import__(name)
File "/home/user/path/env/lib/python3.4/site-packages/django/http/__init__.py", line 1, in <module>
from django.http.cookie import SimpleCookie, parse_cookie
ImportError: cannot import name 'SimpleCookie'
如你所见,
from django.core.wsgi import get_wsgi_application
失败了
另一方面,当我尝试使用 python 解释器时,它可以正确导入。
我还通过记录变量验证了乘客正在使用相同的解释器
import sys
raise Exception(sys.executable)
关于这个原因的任何想法? 我尝试了记录路径,它显示以下内容
['/home/user/path/env/lib/python3.4/site-packages', '/home/user/path/env/lib/python3.4/site-packages/django', '/home/user/path/env/bin', '/home/user/path', '/usr/local/dh/passenger/helper-scripts', '/home/user/path/env/lib/python34.zip', '/home/user/path/env/lib/python3.4', '/home/user/path/env/lib/python3.4/plat-linux', '/home/user/path/env/lib/python3.4/lib-dynload', '/home/user/opt/python-3.4.2/lib/python3.4', '/home/user/opt/python-3.4.2/lib/python3.4/plat-linux', '/home/user/path/env/lib/python3.4/site-packages', '/home/user/path', '/home/user/path/git/package']
我觉得很好
【问题讨论】:
-
路径可能被破坏了。尝试显示
sys.path -
@WayneWerner 查看编辑
-
从您的口译员那里您可以做到
from django.http.cookie import SimpleCookie,对吗?当您在import sys之后将其放入文件中时呢? -
是的,你是对的,我可以从解释器中做到这一点,但是当我在我的 Passenger_wsgi.py 文件中这样做时,它会抛出与上述相同的错误。我已经验证它也使用相同的解释器..所以我对这个问题感到困惑。我只能相信这与乘客有关……这不是一个非常进步的信仰体系。
标签: django python-3.x passenger wsgi dreamhost