Ningún módulo llamado ‘winrandom’ cuando se usa pycrypto

Ya pasé 2 días tratando de instalar pyCrypto para el módulo Paramiko.

Entonces, el primer problema que había enfrentado era este:

>>> import paramiko Traceback (most recent call last): File "", line 1, in  File "C:\Program Files\Python\lib\site-packages\paramiko\__init__.py", line 31 , in  from paramiko.transport import SecurityOptions, Transport File "C:\Program Files\Python\lib\site-packages\paramiko\transport.py", line 4 7, in  from paramiko.dsskey import DSSKey File "C:\Program Files\Python\lib\site-packages\paramiko\dsskey.py", line 26, in  from Crypto.PublicKey import DSA ImportError: No module named 'Crypto' 

En realidad, es muy divertido porque uso Windows y no me interesa la mayúscula. Cambié el nombre de una carpeta de crypto a crypto y este problema en particular desapareció.

Ahora quiere winrandom:

 Traceback (most recent call last): File "", line 1, in  File "C:\Program Files\Python\lib\site-packages\paramiko\__init__.py", line 31 , in  from paramiko.transport import SecurityOptions, Transport File "C:\Program Files\Python\lib\site-packages\paramiko\transport.py", line 4 7, in  from paramiko.dsskey import DSSKey File "C:\Program Files\Python\lib\site-packages\paramiko\dsskey.py", line 26, in  from Crypto.PublicKey import DSA File "C:\Program Files\Python\lib\site-packages\Crypto\PublicKey\DSA.py", line 89, in  from Crypto import Random File "C:\Program Files\Python\lib\site-packages\Crypto\Random\__init__.py", li ne 28, in  from Crypto.Random import OSRNG File "C:\Program Files\Python\lib\site-packages\Crypto\Random\OSRNG\__init__.p y", line 34, in  from Crypto.Random.OSRNG.nt import new File "C:\Program Files\Python\lib\site-packages\Crypto\Random\OSRNG\nt.py", li ne 28, in  import winrandom ImportError: No module named 'winrandom' 

Cuando bash instalarlo a través de PIP fallo con:

 Cannot export PyInit_winrandom: symbol not defined build\temp.win32-3.4\Release\src\winrandom.o:winrandom.c:(.text+0x12): undefined reference to `Py_InitModule' collect2: ld returned 1 exit status error: command 'c:\\mingw\\bin\\gcc.exe' failed with exit status 1 

Parece que no es compatible con Python3.4.

¿Hay alguna manera de hacer que todo funcione en Win7 x86 con Python3.4 instalado?

Módulos instalados:

 crypto (1.1.0) ecdsa (0.11) Fabric (1.9.0) paramiko (1.14.0) pip (1.5.6) pyasn1 (0.1.7) pycrypto (2.6.1) PyYAML (3.11) rsa (3.1.4) setuptools (2.1) 

Python versión 3.4.1

El problema se resuelve editando una cadena en crypto \ Random \ OSRNG \ nt.py:

 import winrandom 

a

 from . import winrandom 

ImportError: No module named 'winrandom' súper fácil para ImportError: No module named 'winrandom' ; aquí es donde se encuentra Python en mi sistema Windows 10:

C:\Users\Charles\AppData\Local\Programs\Python\Python35

Pero tienes que ir más allá para encontrar el archivo correcto para actualizar, así que ve aquí:

C:\Users\Charles\AppData\Local\Programs\Python\Python35\Lib\site-packages\Crypto\Random\OSRNG\nt.py

Abra el nt.py en cualquier editor de texto y cambie solo la línea cerca de la parte superior:

 import winrandom 

debiera ser:

 from . import winrandom 

Guarde el archivo: vuelva a ejecutar lo que estaba intentando ejecutar originalmente y debería estar bien. ¡Espero que esto ayude a alguien!