2014-07-17 32 views
17

Spędziłem już 2 dni próbując zainstalować pyCrypto dla modułu Paramiko.Brak modułu o nazwie "winrandom" podczas używania pycrypto

więc pierwszy problem miałem do czynienia był następujący:

>>> 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' 

Jest to bardzo zabawne, bo rzeczywiście korzystania z systemu Windows i nie dbać o wielkie. Zmieniłem nazwę folderu z crypto na Crypto i ten konkretny problem zniknął.

Teraz chce winrandom:

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' 

Kiedy próbuję zainstalować go przez PIP zawiodę z:

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 

Wydaje się, że nie obsługuje Python3.4.

Czy jest jakiś sposób, aby wszystko działało w Win7 x86 z zainstalowanym Python3.4?

Zainstalowane moduły:

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) 

wersja Pythona 3.4.1

+0

W którym systemie operacyjnym? i wersja? –

+1

Win7 x86 + Python 3.4.1 – vedburtruba

+0

Czy zainstalowałeś poprawnie Paramiko? (jak pokazano na ten link: https://github.com/paramiko/paramiko/blob/master/README) –

Odpowiedz

48

problem jest rozwiązany poprzez edycję ciąg w krypto \ Losowo \ OSRNG \ nt.py:

import winrandom 

do

from . import winrandom 
+0

Mam ten sam problem po edycji tej linii, używając Python 3.5 32bit i Windows 8.1: s –

+0

Dziękuję bardzo! Mam taki sam problem z Pythonem 3.5.1 32-bitowym na Windows 10 x64. – Maks

+0

Doskonały. Jak to działa? Importuje winrandom, ale nie atrybuty i rzeczy WinRandom. – Luke

5

Super Easy Fix dla ImportError: No module named 'winrandom' - to gdzie pyton znajduje się na moim komputerze z systemem Windows 10:

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

Ale trzeba iść dalej, aby znaleźć odpowiedni plik do aktualizacji, więc go tutaj:

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

Otwórz nt.py w dowolnym edytorze tekstowym i zmienić tylko linię pobliżu góry:

import winrandom 

powinno być:

from . import winrandom 

Zapisz plik - Ponowne uruchomienie czego pierwotnie próbuje uruchomić i powinno być dobrze. Mam nadzieję, że to pomoże komuś!