dreamhost python3 Django乘客设置导入Cookie
我正在尝试在dreamhost上使用python3设置django 我已经按照他们的记录安装了一个virtualenv,并安装了所有必备组件。我已经让runserver工作了 问题来自乘客设置。错误日志显示我无法导入名为Cookie的模块,这是由于进一步的错误造成的 这是回溯:dreamhost python3 Django乘客设置导入Cookie,django,python-3.x,passenger,wsgi,dreamhost,Django,Python 3.x,Passenger,Wsgi,Dreamhost,我正在尝试在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 "
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'
失败了
另一方面,当我尝试使用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']
这对我来说似乎很好我遇到了同样的问题,下面的解决方案对我很有效。 我有Django 1.7和Python3.4,使用Eclipse和PyDev作为我的IDE 我的解决方案与此线程相关: 我所做的:
Project/Properties
PyDev-PYTHONPATH
/…/lib/pythonX.Y/site packages/django
的路径删除它。
(我正在使用venv软件包创建虚拟环境。您的路径可能不同。)...
cwd = os.getcwd()
sys.path.append(cwd)
sys.path.append(cwd + '/projectname') #You must add your project here
sys.path.insert(0,cwd+'/env/bin')
sys.path.insert(0,cwd+'/env/lib/python2.7/site-packages')
...
...
cwd = os.getcwd()
sys.path.append(cwd)
sys.path.append(cwd + '/projectname') #You must add your project here
sys.path.insert(0,cwd+'/env/lib/python2.7/site-packages/django')
sys.path.insert(0,cwd+'/env/bin')
sys.path.insert(0,cwd+'/env/lib/python2.7/site-packages')
...
不是这样的:
...
cwd = os.getcwd()
sys.path.append(cwd)
sys.path.append(cwd + '/projectname') #You must add your project here
sys.path.insert(0,cwd+'/env/bin')
sys.path.insert(0,cwd+'/env/lib/python2.7/site-packages')
...
...
cwd = os.getcwd()
sys.path.append(cwd)
sys.path.append(cwd + '/projectname') #You must add your project here
sys.path.insert(0,cwd+'/env/lib/python2.7/site-packages/django')
sys.path.insert(0,cwd+'/env/bin')
sys.path.insert(0,cwd+'/env/lib/python2.7/site-packages')
...
可能这条路堵住了。尝试显示
sys.path
@WayneWerner查看解释器中的编辑您可以从django.http.cookie导入SimpleCookie,对吗?当您在导入sys后将其放入文件时会怎么样?是的,您是正确的,我可以从解释器执行此操作,但当我在passenger_wsgi.py文件中执行此操作时,它会抛出与上面相同的错误。我已经证实它也使用了相同的解释器。。所以我对这个问题感到困惑。我不得不相信这与乘客有关。。这不是一个非常进步的信仰体系。请告诉我这是否有助于你的问题。