Django没有将Module Pycrypto加载到模型中,将加载到shell中

时间:2012-01-03 23:03:41

标签: django virtualenv pycrypto

我在我的Django安装上使用Virtualenv并使用

加载到Pycrypto
pip install pycrypto

采购环境后。

当我尝试将Crypto导入我的模型时,我收到导入错误,但是如果使用

加载shell
manage.py shell

它确实加载了,没有问题。

我很确定django是从virtualenv运行的,因为它运行的是1.3.1,它比路径上安装的更新,而且我已经通过pip安装了South。

我还尝试使用

安装Pycrypto
setup.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

1 个答案:

答案 0 :(得分:0)

在导致导入错误的行之前插入此代码:

import sys
assert False, sys.path

比较两种结果。

在shell中(您可以导入模块)。你可以这样做:

import Crypto
assert False, Crypto.__file__

此结果的目录是否在您的网络服务器的sys.path中?