Python 2.6 virtualenv, выдача пипсов "ImportError: Нет модуля с именем _md5" - PullRequest
1 голос
/ 30 марта 2011

Я разрабатывал сайт django (не относящийся к делу) под python 2.5 до тех пор, пока не захотел перейти на python 2.6, чтобы убедиться, что все работает там. Однако, когда я настраивал свой virtualenv для 2.6, pip выдал ошибку «ImportError: Нет модуля с именем _md5».

Справочная информация:

  • Я работаю на Ubuntu Maverick 10.10.
  • Мой python 2.5 пришел из репо deadsnakes fkrull и работал без проблем.
  • Я создаю virtualenvs с virtualenv <path> --no-site-packages --python=python2.[56]

Если я пытаюсь импортировать hashlib извне virtualenv, он работает нормально:

$ 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, но я получаю ту же ошибку.

Ни один из списка потенциальных дубликатов не помог, поскольку они либо используют разные дистрибутивы Linux, либо просто говорят "пересобрать python".

Идеи

Ответы [ 2 ]

3 голосов
/ 30 марта 2011

В итоге проблема заключалась в том, что у меня были разные версии python2.6 - мой virtualenv (который я на самом деле создал ранее для той же цели) уже установил python 2.6.4, а система работала до 2.6.6 .

Я пытался virtualenv <path> --no-site-packages --python=python2.6 --clear, но, видимо, --clear не очищает старый контейнер с питоном.

rm -rf -ing каталог env и воссоздание его с нуля (таким образом, у venv было 2.6.6) исправили проблему.

0 голосов
/ 13 декабря 2011

У меня была похожая проблема.Я использовал 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 пакет.

...