Python 2.6 virtualenv,pip抛出“ImportError:没有名为_md5的模块”

时间:2011-03-30 14:45:58

标签: python virtualenv pip

到目前为止,我一直在python 2.5下开发一个django站点(不相关),当时我想切换到python 2.6以确保在那里工作。但是,当我为2.6设置virtualenv时,pip抛出了一个错误“ImportError:No module named _md5”。

背景:

  • 我正在使用Ubuntu Maverick 10.10。
  • 我的python 2.5来自fkrull's deadsnakes repo,并且一直没有问题。
  • 我用virtualenv <path> --no-site-packages --python=python2.[56]
  • 创建了virtualenvs

如果我尝试从virtualenv外部导入hashlib,它可以正常工作:

$ python2.6
Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import hashlib
>>>

但是它内部会抛出相同的ImportError。

我已经尝试重新安装python2.6,libpython2.6和python2.6-minimal并重新创建我的virtualenv,但是我得到了同样的错误。

list of potential duplicates没有任何帮助,因为他们要么使用不同的Linux发行版,要么简单地说“重新编译python”。

想法?

2 个答案:

答案 0 :(得分:3)

问题最终成为python2.6的不同版本 - 我的virtualenv(我之前实际创建的用于相同目的)已经安装了python 2.6.4,而系统达到2.6.6

我曾尝试virtualenv <path> --no-site-packages --python=python2.6 --clear,但显然--clear没有清除旧的python bin。

rm -rf - 在env目录中重新创建它(因此venv也有2.6.6)修复了这个问题。

答案 1 :(得分:0)

我有类似的问题。我使用virtualenv从外部存储库检出。在virtualenv中我有32位python2.6.4,在我的本地系统里面我有64位python 2.6.6。当我输入

>>> import hashlib

在我的virtualenv中我收到了同样的异常(ImportError: No module named _md5)。真正的问题是导入_hashlib模块。它引发了异常ImportError: libssl.so.0.9.8: wrong ELF class: ELFCLASS64。解决方案是安装ia32-libs包。