【问题标题】:Django not loading Module Pycrypto into model, will load into shellDjango没有将模块Pycrypto加载到模型中,将加载到shell中
【发布时间】:2012-01-03 23:03:40
【问题描述】:

我在我的 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

【问题讨论】:

  • 你能粘贴错误吗?是否有可能你有另一个名为 pycrypto 的模块正在被混搭?
  • 更新了初始帖子,提供更多信息

标签: django virtualenv pycrypto


【解决方案1】:

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

import sys
assert False, sys.path

比较两个结果。

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

import Crypto
assert False, Crypto.__file__

这个结果的目录是你的网络服务器的 sys.path 吗?

【讨论】:

  • 是的,做到了。我是 virtualenv 的新手,我认为你可以移动他们的父文件夹,一切都会正常工作。你不能。我重新创建了环境并重新安装了软件,它工作正常。我不明白为什么 South 起作用了,但 crypto 没有。
  • 感谢各位的帮助。我以为我的问题太特殊而无法解决,但很高兴我被证明是错误的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-05
  • 2018-03-24
  • 1970-01-01
  • 1970-01-01
  • 2013-01-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多