我在Django安装中使用Virtualenv,并使用
加载Pycryptopip install pycrypto
after sourcing my environment.
当我尝试将Crypto导入我的模型时,我得到一个导入错误,但是如果使用
加载shellmanage.py shell
它确实加载了,没有任何问题。
我很确定django是从virtualenv运行的,因为它运行的是1.3.1,比安装在路径上的版本更最新,我已经通过pip安装了South。
我也尝试使用
安装Pycryptosetup.py install
对我如何修复/调试这个有什么想法吗?
感谢编辑:我对Django和Python比较陌生,所以它可以是一些简单的
编辑2:嘿,欢笑,
有什么方法可以找到所有正在加载的模块吗?
我不明白为什么它不能在浏览器中工作,但会在交互式shell中工作?我不是说不可能,我只是不知道这是否/怎么可能发生。
请求的导入错误:
ImportError at /
No module named Crypto
Request Method: GET
Request URL: http://*/
Django Version: 1.3.1
Exception Type: ImportError
Exception Value:
No module named Crypto
Exception Location: /home/*************/project/app/models.py in <module>, line 1
Python Executable: /home/*************/env/bin/python
Python Version: 2.6.6
Python Path:
['/usr/local/dh/passenger/lib/phusion_passenger/wsgi',
'/home/*************/env/lib/python2.6/site-packages/distribute-0.6.10-py2.6.egg',
'/home/*************/env/lib/python2.6/site-packages/pip-0.7.2-py2.6.egg',
'/home/*************/env/src/django-debug-toolbar',
'/home/*************/env/lib/python2.6',
'/home/*************/env/lib/python2.6/plat-linux2',
'/home/*************/env/lib/python2.6/lib-tk',
'/home/*************/env/lib/python2.6/lib-old',
'/home/*************/env/lib/python2.6/lib-dynload',
'/usr/lib/python2.6',
'/usr/lib64/python2.6',
'/usr/lib/python2.6/plat-linux2',
'/usr/lib/python2.6/lib-tk',
'/usr/lib64/python2.6/lib-tk',
'/home/*************/env/lib/python2.6/site-packages',
'/home/*************',
'/home/*************/project']
Server time: Tue, 3 Jan 2012 20:08:19 +1100
在导致导入错误的行之前插入以下代码:
import sys
assert False, sys.path
比较两个结果。
在shell中(您可以在其中导入模块)。你可以这样做:
import Crypto
assert False, Crypto.__file__
是sys中该结果的目录。您的web服务器的路径?