我一直在python 2.5下开发一个Django站点(无关紧要),直到现在,当我想切换到Python 2.6以确保事情在那里工作。然而,当我为2.6设置virtualenv时,pip抛出一个错误“ImportError:No module named _md5”。Python 2.6 virtualenv,点投掷“ImportError:没有模块名为_md5”
背景:
- 我在Ubuntu 10.10小牛运行。
- 我的python 2.5来自fkrull's deadsnakes repo,一直没有问题。
- 我创建virtualenvs与
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
>>>
但里面抛出同样的导入错误。
我试过重新安装python2.6,libpython2.6和python2.6-minimal并重新创建我的virtualenv,但我得到了同样的错误。
没有一个list of potential duplicates没有帮助,因为他们要么使用不同的Linux发行版,要么简单地说“重新编译python”。
想法?
我受到模块名称的欺骗。无论如何,_md5是什么?我不知道任何模块名称_md5默认python安装 – user237419 2011-03-30 14:52:33
从我所了解,_md5是一个C库或C模块的包装。 'python shell中import _md5'失败并带有ImportError,所以我不知道hashlib是否在某处做了一些魔术。 – eternicode 2011-03-30 14:57:20
是的,这是一个由hashlib内部使用的C模块(可能以_来命名,以缓解md5模块弃用的过程);你的问题与升级和virtualenv运行不同的python/dep版本有关;我想你的修复(从头开始擦除并重新创建venv)是唯一的修复:) – user237419 2011-03-30 15:40:08