Вложенные ошибки импорта - PullRequest
0 голосов
/ 20 февраля 2012

Бег 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 и попытался использовать автономную библиотеку hashlib . Поэтому я изменил 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 Ответ

0 голосов
/ 21 февраля 2012

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

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

2) если вы, к сожалению, застряли с 2.4 по неизвестной причине ... похоже, что Python не может найти ни один из файлов модуля двоичного расширения (.pyd), которые поставляются с установленным вами пакетом hashlib. Вы скомпилировали свой собственный hashlib или установили бинарную версию? Если это так, убедитесь, что файл _hashlib.pyd находится где-то в PYTHONPATH или sys.path.

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

...