Модуль Python и hashlib

Я только что установил Python 2.6.6 из исходников и получил следующее:

>>> import hashlib
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.6/hashlib.py", line 136, in <module>
    md5 = __get_builtin_constructor('md5')
  File "/usr/local/lib/python2.6/hashlib.py", line 63, in __get_builtin_constructor
    import _md5
ImportError: No module named _md5

person zerkms    schedule 17.11.2010    source источник
comment
Вы уверены, что у вас есть все обновления для этой версии Python? Возможно, вы используете что-то устаревшее. Я попытался импортировать hashlib. директор(хеш-библиотека._md5). с отрицательными результатами. Попробовать переустановить?   -  person inspectorG4dget    schedule 17.11.2010
comment
@ InspectorG4dget: он был установлен 10 минут назад. То же самое в питоне 2.6 и 2.7   -  person zerkms    schedule 17.11.2010
comment
Для какой платформы и/или на какой платформе вы компилируете? Я обнаружил, что при кросс-компиляции чаще всего ломается хэш-библиотека.   -  person Daniel Pryden    schedule 17.11.2010
comment
@ Дэниел Прайден: это красная шляпа Red Hat Enterprise Linux AS release 4 (Nahant Update 4)   -  person zerkms    schedule 17.11.2010
comment
Что произойдет, если вы просто сделаете import md5? Вы должны получить предупреждение об устаревании, а не ошибку. Если вы получаете сообщение об ошибке, у вас большие проблемы с установкой.   -  person Nathan Ernst    schedule 17.11.2010
comment
@Nathan Ernst: да, у меня есть предупреждение об устаревании + трассировка стека о том, что модуль _md5 не найден.   -  person zerkms    schedule 17.11.2010


Ответы (3)


Установите openssl-dev и перестройте.

person Ignacio Vazquez-Abrams    schedule 17.11.2010

Я только что проверил это на моей установке 2.6.6, и у меня не было такой проблемы. Возможно, вы захотите попробовать переустановить. Кроме того, я не уверен, что модуль hashlib можно установить отдельно, но вы можете попробовать и это.

Кроме того, вы можете попробовать импортировать определенные функции из hashlib и дать результат?

>>> from hashlib import sha512

потому что, если вам не нужны MD5, вы можете избежать проблемы.

person AJ00200    schedule 17.11.2010
comment
он был установлен 10 минут назад. Я не вижу причин, по которым переустановка может помочь - person zerkms; 17.11.2010

У вас должен быть где-то md5.so, если он не находится на вашем пути к Python, я думаю, это может вызвать эту проблему. Я уже сталкивался с этой проблемой.

Позвольте мне знать, если это помогает.

person Auston    schedule 17.11.2010