2011-03-30 3 views
1

저는 Python 2.6에서 장고 사이트 (관련 없음)를 개발하여 파이썬 2.6으로 바꾸고 싶었습니다. 그러나 2.6 용 virtualenv를 설정할 때 pip는 "ImportError : No module named _md5"라는 오류를 던졌습니다.Python 2.6 virtualenv, pip throwing "ImportError : No module named _md5"

배경 : 나는 우분투 매버릭 10.10에

  • 를 실행하고 있습니다.
  • 내 파이썬 2.5는 fkrull's deadsnakes repo에서 왔으며 문제없이 작업 해 왔습니다.

    $ 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를 던졌습니다 내부 : 나는 VIRTUALENV 외부에서 hashlib를 가져 오려고하면

  • 내가 virtualenv <path> --no-site-packages --python=python2.[56]

와 virtualenvs를 생성, 그것을 잘 작동합니다.

나는 python2.6, libpython2.6 및 python2.6-minimal을 다시 설치하고 내 virtualenv를 다시 만들려고했지만 동일한 오류가 발생합니다.

아무런 list of potential duplicates도 도움이되지 않았습니다. 다른 Linux 배포판을 사용하거나 단순히 "재 컴파일 파이썬"이라고 말하면서 도움이되지 않았습니다.

아이디어가 있으십니까?

+0

나는 모듈 이름으로 속았다. 어쨌든 _md5 무엇입니까? _md5라는 모듈을 기본 파이썬 설치로 인식하지 못합니다. – user237419

+0

제가 이해 한 바로는 _md5가 C 라이브러리 또는 C 모듈 주위의 래퍼입니다. 'import _md5'도 파이썬 쉘에서 ImportError와 함께 실패합니다. 그래서 hashlib가 어딘가에서 어떤 마법을 쓰고 있는지 궁금합니다. – eternicode

+0

예, hashlib에 의해 내부적으로 사용되는 C 모듈입니다 (아마도 md5 모듈의 사용을 줄이기 위해 _으로 이름이 지정되었을 것입니다). 귀하의 문제는 귀하의 업 그레 이드 및 다른 파이썬/dep 버전을 실행하는 virtualenv와 관련이 있습니다; 나는 당신의 수정 (처음부터 venv를 닦아내고 재현하는 것)이 유일한 수정이라고 생각한다. – user237419

답변

3

문제는 python2.6의 다른 버전이되었습니다. 내 virtualenv (이전에 같은 목적으로 만든 날짜)에 이미 2.6.4 버전의 Python이 설치되어 있었고 시스템은 2.6 버전이었습니다. 6.

나는 virtualenv <path> --no-site-packages --python=python2.6 --clear을 시도했지만 분명히 --clear은 오래된 파이썬 빈을 지우지 않습니다.

rm -rf-env 디렉토리 - 처음부터 다시 만들기 (따라서 venv도 2.6.6을 가짐) 문제가 해결되었습니다.

+1

나는 virtualenv를 만드는 동안 동일한 오류가 있지만 어떤 생각을하고 있나? –

0

비슷한 문제가있었습니다. 가상 저장소를 외부 저장소에서 체크 아웃했습니다. virtualenv 내부에는 32 비트 python2.6.4가 있었고 내 로컬 시스템에는 64 비트 Python 2.6.6이있었습니다. 내 VIRTUALENV 내부

>>> import hashlib 

를 입력하면 나도 같은 예외 (ImportError: No module named _md5)을 받았다. 실제 문제는 _hashlib 모듈을 가져 오는 중있었습니다. 그것은 예외 ImportError: libssl.so.0.9.8: wrong ELF class: ELFCLASS64를 던졌다. 해결책은 ia32-libs 패키지를 설치하는 것이 었습니다.

관련 문제