Нет модуля с именем «winrandom» при использовании pycrypto

Я уже провел 2 дня, пытаясь установить pyCrypto для модуля Paramiko.

Итак, первый вопрос, с которым я столкнулся, состоял в следующем:

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

Это очень забавно, потому что я использую Windows, и это не заботит прописные буквы. Я изменил имя папки с криптографией на Crypto, и этот конкретный вопрос исчез.

Теперь он хочет 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' 

Когда я пытаюсь установить его через PIP, я терпим неудачу:

 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 

Похоже, что он не поддерживает Python3.4.

Есть ли способ сделать все это в Win7 x86 с установленным Python3.4?

Установленные модули:

 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 3.4.1

  • Вопросы виртуального виртуального питона
  • Добавить / удалить программы в Windows XP с помощью скрипта Python
  • сохранить несколько окон консоли из пакета
  • Многопроцессорность Python: как я могу НАДЕЖДАТЬ перенаправление stdout из дочернего процесса?
  • Как запустить скрипт python с повышенными привилегиями на окнах
  • ошибка с функцией parse в lxml
  • Как найти общую папку данных приложения Windows с помощью Python?
  • специфичная для платформы семантика Unicode в Python 2.7
  • 2 Solutions collect form web for “Нет модуля с именем «winrandom» при использовании pycrypto”

    Проблема решена путем редактирования строки в крипто \ Random \ OSRNG \ nt.py:

     import winrandom 

    в

     from . import winrandom 

    Super easy fix для ImportError: No module named 'winrandom' – вот где python находится в моей системе Windows 10:

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

    Но вам нужно идти дальше, чтобы найти нужный файл для обновления, поэтому перейдите сюда:

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

    Откройте nt.py в любом текстовом редакторе и измените только строку вверху:

     import winrandom 

    должно быть:

     from . import winrandom 

    Сохраните файл – перезапустите то, что вы изначально пытались запустить, и вы должны быть хорошими. Надеюсь, это поможет кому-то!

    Python - лучший язык программирования в мире.