2012-02-20 5 views
0

Запуск 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, и я пытаюсь использовать standalone hashlib library. Поэтому я модифицирована 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. 

Я posted similar question вчера, но не смог найти точное решение, поэтому я отправляю это снова. Я отчаянно нуждаются в решении :(

+0

Почему вы не можете скомпилировать и установить PyCrypto, как предложено в другом вопросе? hashlib полагается на собственные библиотеки openssl; он терпит неудачу, потому что они не установлены в вашей системе. – SquareRootOfTwentyThree

ответ

0

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

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

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

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