J'ai déjà passé 2 jours à essayer d'installer pyCrypto pour le module Paramiko.
Donc, le premier problème que j'avais rencontré était le suivant:
>>> import paramiko
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Program Files\Python\lib\site-packages\paramiko\__init__.py", line 31
, in <module>
from paramiko.transport import SecurityOptions, Transport
File "C:\Program Files\Python\lib\site-packages\paramiko\transport.py", line 4
7, in <module>
from paramiko.dsskey import DSSKey
File "C:\Program Files\Python\lib\site-packages\paramiko\dsskey.py", line 26,
in <module>
from Crypto.PublicKey import DSA
ImportError: No module named 'Crypto'
C'est très amusant en fait parce que j'utilise Windows et il ne se soucie pas des majuscules. J'ai changé le nom d'un dossier de crypto en Crypto et ce problème particulier a disparu.
Maintenant, il veut gagner au hasard:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Program Files\Python\lib\site-packages\paramiko\__init__.py", line 31
, in <module>
from paramiko.transport import SecurityOptions, Transport
File "C:\Program Files\Python\lib\site-packages\paramiko\transport.py", line 4
7, in <module>
from paramiko.dsskey import DSSKey
File "C:\Program Files\Python\lib\site-packages\paramiko\dsskey.py", line 26,
in <module>
from Crypto.PublicKey import DSA
File "C:\Program Files\Python\lib\site-packages\Crypto\PublicKey\DSA.py", line
89, in <module>
from Crypto import Random
File "C:\Program Files\Python\lib\site-packages\Crypto\Random\__init__.py", li
ne 28, in <module>
from Crypto.Random import OSRNG
File "C:\Program Files\Python\lib\site-packages\Crypto\Random\OSRNG\__init__.p
y", line 34, in <module>
from Crypto.Random.OSRNG.nt import new
File "C:\Program Files\Python\lib\site-packages\Crypto\Random\OSRNG\nt.py", li
ne 28, in <module>
import winrandom
ImportError: No module named 'winrandom'
Lorsque j'essaie de l'installer via PIP, j'échoue avec:
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
On dirait qu'il ne prend pas en charge Python3.4.
Existe-t-il un moyen de faire fonctionner tout cela sous Win7 x86 avec Python3.4 installé?
Modules installés:
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 version 3.4.1
Le problème est résolu en modifiant la chaîne dans crypto\Random\OSRNG\nt.py:
import winrandom
à
from . import winrandom
Solution super facile pour ImportError: No module named 'winrandom'
- c'est là que python se trouve sur mon système Windows 10:
C:\Users\Charles\AppData\Local\Programs\Python\Python35
Mais vous devez aller plus loin pour trouver le bon fichier à mettre à jour, alors allez ici:
C:\Users\Charles\AppData\Local\Programs\Python\Python35\Lib\site-packages\Crypto\Random\OSRNG\nt.py
Ouvrez le nt.py
dans n'importe quel éditeur de texte et modifiez simplement la ligne en haut:
import winrandom
devrait être:
from . import winrandom
Enregistrez le fichier - réexécutez ce que vous essayiez à l'origine d'exécuter et vous devriez être bon. J'espère que cela aide quelqu'un!