到目前为止,我一直在python 2.5下开发一个django站点(不相关),当时我想切换到python 2.6以确保在那里工作。但是,当我为2.6设置virtualenv时,pip抛出了一个错误“ImportError:No module named _md5”。
背景:
virtualenv <path> --no-site-packages --python=python2.[56]
如果我尝试从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”。
想法?
答案 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
包。