Django没有将Pycrypto模块加载到model中,而是加载到shell中



我在Django安装中使用Virtualenv,并使用

加载Pycrypto
pip install pycrypto

after sourcing my environment.

当我尝试将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

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

import sys
assert False, sys.path

比较两个结果。

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

import Crypto
assert False, Crypto.__file__

是sys中该结果的目录。您的web服务器的路径?

相关内容

  • 没有找到相关文章

最新更新