我一直在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