Вопрос

Бег python version 2.4.3. Анкет Я использую Python-Amazon-Product-API. Анкет Однако в api.py Следующие строки кода вызывают проблему:

if sys.version_info[:2] > (2, 4): # pragma: no cover
    from urllib2 import quote
    from hashlib import sha256 # pylint: disable-msg=E0611
else:
    from urllib import quote
    from Crypto.Hash import SHA256 as sha256

Поскольку моя версия 2.4.3, она заходит в else и попытаться импортировать Crypto. Анкет Итак, я скачал это, но я получил ошибку импорта в sha256.py cannot import _SHA256. Анкет В библиотеке нет _sha256.py. После всех моих неудачных усилий я перестал использовать Pycrypto и пытаюсь использовать Автономная библиотека хешлиб. Анкет Итак, я изменил else часть в api.py:

else:
    from hashlib import hashlib
    sha256 = hashlib.sha256()

С другой стороны, при импорте Hashlib я получил эту ошибку импорта.

File "C:\Python24\lib\site-packages\hashlib.py", line 63, in __get_builtin_constructor
    import _md5
ImportError: DLL load failed: The specified module could not be found.

я опубликовал аналогичный вопрос Вчера, но не в состоянии найти точное решение, поэтому я снова публикую это. Мне отчаянно нужно решение :(

Это было полезно?

Решение

Несколько вопросов, основанных на том, что вы сказали выше.

1) Почему вы используете древнюю версию Python? Установите Python 2.7 и будьте счастливее!

2) Предполагая, что вы, к сожалению, застряли с 2.4 по какой -то неизвестной причине ... кажется, что Python не может найти какой -либо из файлов Birary Extension Module (.pyd), который поставлялся с установленным вами пакетом Hashlib. Вы скомпилировали свой собственный хэшлиб или установили бинарную версию? Если это так, убедитесь, что файл _hashlib.pyd помещен где -то в Pythonpath или Sys.path.

У меня не было установщика Windows с предварительно сгруппированными двоичными файлами для хэшлиба на http://code.krypto.org/python/hashlib В течение многих лет мне не хватает возможности создавать и проверять его ... и Python 2.4 настолько стар, что я полагаю, что кто -то, кто может установить бинарку в свою систему, может просто установить современную версию самого Python.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top