PyCrypto на python 3.5

Я нашел несколько инсталляторов PyCrypto для Python 3.3 и 3.4, но ничего для Python 3.5.

Когда я пытаюсь установить PyCrypton с помощью pip install, он говорит:

warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath.  

Есть ли способ установить PyCrypto на Python 3.5 в Windows 10? Спасибо!

Ответ 1

Это предупреждение не должно останавливать сборку, скорее всего, вам не хватает компилятора Visual Studio 2015, который необходим для создания двоичных расширений (которые PyCrypto имеет). См. Руководство пользователя Python Packaging, для которого необходим компилятор для вашей версии Python.

Причина, по которой вам нужен компилятор, - это PyCrypto, только официальное распространение источника. Итак, у вас есть два варианта установки PyCrypto:

1. Построить из источника:

Это на самом деле довольно просто, но для этого требуется установить дополнительное программное обеспечение. Снова обратитесь к руководству пользователя Python Packaging, приведенному выше, чтобы найти подходящий компилятор для вашей версии Python. Я думаю, что есть возможность установить соответствующий компилятор для Python, если вы выполняете пользовательскую установку Visual Studio.

Затем, после завершения установки и вам, вероятно, придется перезагрузить компьютер, вы сможете просто запустить pip install pycrypto, а pip загрузит источник и скомпилирует его для вас.

Если вы также установили колесо (pip install wheel), то pip создаст колесо из источника и кеширует его, вот как я создал колеса, которыми я пользуюсь в опции 2.

2. Установка встроенного дистрибутива с стороннего пользователя

Я являюсь третьим лицом и имею общие диски, которые я скомпилировал для PyCrypto 2.6.1 с Python 3.5 для 32 и 64-разрядных Windows на моем GitHub репо. Я включил инструкции по установке в readme этого репо.

Если вы ищете встроенный дистрибутив для более старой версии Python и/или PyCrypto, я также связался с Voidspace в моем репозиторию (извините, я ограничена двумя ссылками здесь).

Ответ 2

Используйте pycryptodome вместо этого! Это проект, который все еще поддерживается (июнь 2017) и включает в себя функции pycrypto для python 3.xx(он работал у меня на python 3.6)

Страница проекта:

https://www.pycryptodome.org/en/latest/index.html

Ответ 3

Используйте этот пост в качестве ссылки для выполнения этой процедуры в системах Windows: http://codeyarns.com/2012/04/28/python-version-not-found-in-registry-error/

Используя это, мы можем сделать это:

  • В диалоговом окне "Запуск Windows" откройте программу regedit.
  • Экспорт из HKEY_LOCAL_MACHINE\SOFTWARE\Python (python_install_35.reg). Перейдите в это место и выполните "экспорт" в контекстном меню.
  • Отредактируйте файл reg и замените HKEY_LOCAL_MACHINE на HKEY_CURRENT_USER
  • Выполните приглашение консоли (cmd) в качестве администратора и выполните regedit python_install_35.reg
  • Добавить записи в реестр
  • См. измененные записи с помощью regedit и измените HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\3.5 на HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\3.3.
  • Запустите программу установки