Pregunta

Correr python version 2.4.3. estoy usando Python-amazon-product-api. Sin embargo api.py Las siguientes líneas de código están causando problemas:

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

Como mi versión es 2.4.3, entra a else e intenta importar Crypto. Así que descargué eso, pero recibí un error de importación en Sha256.py cannot import _SHA256. No hay _sha256.py en la biblioteca. Después de todos mis esfuerzos fallidos, dejé de usar Pycrypto y trato de usar Biblioteca de Hashlib independiente. Entonces modifiqué else parte en api.py:

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

Por otra parte, mientras importaba Hashlib, recibí este error de importación.

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.

yo Publicado pregunta similar Ayer, pero no puedo encontrar la solución exacta, por eso estoy publicando esto nuevamente. Necesito desesperadamente una solución :(

¿Fue útil?

Solución

Varias preguntas basadas en lo que ha dicho anteriormente.

1) ¿Por qué estás usando una versión antigua de Python? ¡Instale Python 2.7 y sea más feliz!

2) Suponiendo que desafortunadamente está atrapado con 2.4 por alguna razón desconocida ... Parece que Python no puede encontrar ninguno de los archivos del módulo de extensión binaria (.pyd) que vino con el paquete Hashlib que instaló. ¿Compiló su propio hashlib o instaló una versión binaria? Si es así, asegúrese de que el archivo _hashlib.pyd se coloque en algún lugar de Pythonpath o sys.path.

No he tenido un instalador de Windows con binarios precompilados para hashlib en http://code.krypto.org/python/hashlib En años, ya que me falta la capacidad de construirlo y probarlo ... y Python 2.4 es tan viejo que supongo que cualquier persona que tenga la capacidad de instalar un binario en su sistema puede instalar una versión moderna de Python.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top