我在我的Django安装上使用Virtualenv并使用
加载到Pycryptopip install pycrypto
采购环境后。
当我尝试将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
答案 0 :(得分:0)
在导致导入错误的行之前插入此代码:
import sys
assert False, sys.path
比较两种结果。
在shell中(您可以导入模块)。你可以这样做:
import Crypto
assert False, Crypto.__file__
此结果的目录是否在您的网络服务器的sys.path中?