Как установить PyCrypto на Windows?



Я читал все другие источники google и так поток, ничего не работает.



Python 2.7.3 32bit установлен на Windows 7 64bit. Загрузка, извлечение, а затем попытка установить PyCrypto приводит к "Unable to find vcvarsall.bat".



поэтому я устанавливаю MinGW и прикрепляю его в строке установки в качестве компилятора по выбору. Но тогда я получаю ошибку "RuntimeError: chmod error".



как же мне это обойти? Я пробовал использовать pip, что дает тот же результат. Я нашел готовый двоичный файл PyCrypto 2.3 и установил это, но его нигде не найти в системе (не работает).



какие идеи?

3168   19  

19 ответов:

Если у вас еще не установлена среда разработки C/c++, совместимая с двоичными файлами Visual Studio, распространяемыми Python.org, затем вы должны придерживаться установки только чистых пакетов Python или пакетов, для которых доступен двоичный файл Windows.

к счастью, для Windows доступны двоичные файлы PyCrypto: http://www.voidspace.org.uk/python/modules.shtml#pycrypto

обновление:
Как @Udi предлагает в комментарий ниже, следующая команда также устанавливает pycrypto и может использоваться в virtualenv а также:

easy_install http://www.voidspace.org.uk/python/pycrypto-2.6.1/pycrypto-2.6.1.win32-py2.7.exe

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

Если вы ищете сборки для Python 3.5, см. PyCrypto на python 3.5

Microsoft недавно выпустила автономный, выделенный компилятор Microsoft Visual C++ для Python 2.7. Если вы используете Python 2.7, просто установите этот компилятор и Setuptools 6.0 или более поздней версии, и большинство пакетов с расширениями C теперь будут легко компилироваться.

В общем

vcvarsall.bat является частью компилятора Visual C++, вам нужно, чтобы установить то, что вы пытаетесь установить. Даже не пытайтесь иметь дело с MingGW, если ваш Python был скомпилирован с помощью Visual Studio toolchain и наоборот. Даже версия из цепочки инструментов Microsoft имеет важное значение. Питон компилируется с VS 2008 не будет работать с расширениями, составленный с VS 2010!

вы должны скомпилировать PyCrypto с тем же компилятором, что и версия Python был составлен С. Google для " не удалось найти vcvarsall.летучая мышь" потому что это корень вашей проблемы, это очень распространенная проблема с компиляцией расширений Python на Windows.

есть много информации и много читать, чтобы получить это право, на какой системе вы находитесь на этой ссылке.

остерегайтесь использовать Visual Studio 2010 или не использовать Visual Studio 2008

насколько я знаю по-прежнему истинный. Это было опубликовано в ссылке выше в июне 2010 года, ссылаясь на попытку построить расширения с VS 2010 Express против установщиков Python, доступных на python.org.

будьте осторожны, если вы делаете это. Python 2.6 и 2.7 от python.org есть построен с помощью компиляторов Visual Studio 2008. Вам нужно будет связаться с та же ЭЛТ (msvcr90.dll) как Python.

Visual Studio 2010 Express связывается с неправильной версией CRT: msvcr100.файл DLL.

Если для этого необходимо также заново построить Python с помощью Visual Studio 2010 Экспресс. Вы не можете использовать стандартный двоичный установщик Python для Окна. Также вы не можете использовать расширения C / C++, построенные с другим компилятор, чем Visual Studio 2010 (Express).

мнение: это одна из причин, по которой я отказался от Windows для всех серьезных разработок для OSX!

для VS2010:

SET VS90COMNTOOLS=%VS100COMNTOOLS%

для VS2012:

SET VS90COMNTOOLS=%VS110COMNTOOLS%
звоните:
pip install pyCrypto 

спустя годы и годы, python наконец согласился на двоичное распределение под названием wheel который позволяет устанавливать даже двоичные расширения на Windows, не имея компилятора с простым pip install packagename. Там есть список популярных пакетов С их статусом. Pycrypto еще нет, но lxml, PySide и Scrapy, например.

Отредактировано Ноябрь 2015:pip uninstall pycrypto & pip install pycryptodome. Это pycrypto вилка с новыми функциями и поддерживает колесо. Оно заменяет pycrypto, поэтому существующий код будет продолжать работать (см. https://pycryptodome.readthedocs.org/en/latest/src/examples.html)

PyCryptodome является почти совместимой вилкой PyCrypto с колесами Windows, доступными на pypi.

вы можете установить его с простого:

pip install pycryptodome

веб-сайт содержит инструкции по его сборке из источников с компиляторами Microsoft.

и pycrypto для компиляции с помощью MinGW32 и MSYS. Это предполагает, что у вас есть pip или easy_install установлен.

вот как я это сделал:

1) установить MinGW32. Ради этого объяснения предположим, что он установлен в C:\MinGW. При использовании установщика, который я рекомендую, выберите компилятор C++. MSYS должен установить с MinGW

2) Добавить c:\mingw\bin,c:\mingw\mingw32\bin,C:\MinGW\msys.0, c:\mingw\msys.0\bin and c:\mingw\msys.0\sbin на %PATH%. Если это не так знакомо,в этой статье очень полезная.

3) в строке поиска запустите msys и откроется терминал MSYS. Для тех, кто знаком с Cygwin, он работает аналогичным образом.

4) из терминала MSYS pip install pycrypto должно работать без ошибок после этого.

для тех из вас, кто ищет python 3.4 я нашел git repo с установщиком, который просто работает. Вот прямые ссылки для x64 и x32

можно построить PyCrypto с помощью Windows 7 SDK toolkits. Существует две версии Windows 7 SDK. Исходная версия (для .Net 3.5) включает компиляторы командной строки VS 2008. Можно установить как 32 -, так и 64-разрядные компиляторы.

первым шагом является компиляция mpir для обеспечения быстрой арифметики. Я задокументировал процесс, который я использую в gmpy библиотека. Подробные инструкции по созданию mpir с помощью компилятора SDK можно найти по адресу sdk_build

ключевыми шагами для использования компиляторов SDK из приглашения DOS являются:

1) Запустите либо vcvars32.летучая мышь или vcvars64.летучая мышь по мере необходимости.

2) в командной строке выполните команду "set MSSdk=1"

3) в командной строке выполните команду "set DISTUTILS_USE_SDK=1"

Это должно позволить "python setup.py установите", чтобы добиться успеха, предполагая, что нет никаких других проблем с кодом C. Но я смутно помню, что мне пришлось отредактировать пару PyCrypto файлы для включения mpir и поиска библиотек mpir, но на данный момент у меня нет моей системы Windows. Это будет через пару дней, прежде чем у меня будет время, чтобы воссоздать шаги. Если вы не сообщили об успехе к тому времени, я опубликую шаги PyCrypto. Шаги будут предполагать, что вы смогли скомпилировать mpir.

Я надеюсь, что это помогает.

Для Windows 7:

чтобы установить Pycrypto в Windows,

попробуйте это в командной строке

Set path=C:\Python27\Scripts (т. е. путь, где находится easy_install)

затем выполните следующие действия,

pycrypto easy_install

Для Ubuntu:

попробуйте это,

скачать Pycrypto из "https://pypi.python.org/pypi/pycrypto"

затем измените свой текущий путь на загруженный путь с помощью вашего терминала, и пользователь должен быть root:

например: root@xyz-virtual-machine:~/pycrypto-2.6.1#

затем выполните следующие действия с помощью терминала:

python setup.py установить

Это сработало для меня. Надежда работает для всех..

поэтому я устанавливаю MinGW и прикрепляю его в строке установки в качестве компилятора предпочтительный. Но потом я получаю сообщение об ошибке "RuntimeError: chmod error".

ошибка "RuntimeError: chmod error" происходит потому, что скрипт установки не нашел .

как же мне это обойти?

решение

вам нужно только добавьте двоичные файлы MSYS в путь и повторно запустите установку скрипт.

(N. B: обратите внимание, что MinGW поставляется с MSYS so)

пример

например, если мы находимся в папке C:\<..>\pycrypto-2.6.1\dist\pycrypto-2.6.1>

C:\.....>set PATH=C:\MinGW\msys.0\bin;%PATH%
C:\.....>python setup.py install

необязательно: перед повторным запуском скрипта может потребоваться очистка:

`C:\<..>\pycrypto-2.6.1\dist\pycrypto-2.6.1> python setup.py clean`
  1. на "компилятор Microsoft Visual C++ для Python 2.7" и продолжить на основе "системные требования" (это то, что я сделал, чтобы положить ниже шаги вместе).

  2. установить setuptools (setuptools 6.0 или более поздней версии требуется для Python для автоматического обнаружения этого пакета компилятора) либо:pip install setuptools или скачать "Setuptools bootstrapping installer" источник С, сохраните этот файл где-нибудь в вашей файловой системе как "ez_python.py" и установить с: python ez_python.py

  3. установить колеса (колесо рекомендуется для производства готовых двоичных пакетов). Вы можете установить его с помощью:pip install wheel

  4. Откройте командную строку cmd с повышенными правами Windows.exe (с "Запуск от имени администратора") до установить "компилятор Microsoft Visual C++ для Python 2.7" для всех пользователей. Вы можете использовать следующее команда для этого: msiexec / i C:\users\jozko\download\VCForPython27.msi ALLUSERS=1 просто используйте свой собственный путь к файлу: msiexec /i <path to MSI> ALLUSERS=1

  5. теперь вы должны быть в состоянии установить pycrypto с: pip install pycrypto

попробуйте просто через:

pip install pycryptodome

или:

pip install pycryptodomex

Источник:https://pypi.python.org/pypi/pycryptodome

наверное, это не оптимальное решение, но вы можете скачать и установить бесплатный пакет Visual C++, Экспресс-жи это даст вам компилятор C++ нужно компилировать код PyCrypto.

поэтому я устанавливаю MinGW и прикрепляю его в строке установки в качестве компилятора по выбору. Но потом я получаю сообщение об ошибке "RuntimeError: chmod error".

вам нужно установить пакет msys под MinGW

enter image description here

и добавьте следующие записи в переменную env вашего пути.

  • C:\MinGW\bin
  • C:\MinGW\msys.0\bin [здесь вы найдете исполняемый файл chmod]

затем запустите команду из обычного командная строка Windows.

мой ответ может быть не связан с проблемой упоминания здесь, но у меня была такая же проблема с Python 3.4 где крипто.Шифр не был действительным импортом. Поэтому я попытался установить PyCrypto и столкнулся с проблемами.

после некоторых исследований я нашел с 3.4 вы должны использовать pycryptodome.

Я устанавливаю pycryptodome с помощью pycharm, и я был хорош.

с крипто.Шифр импорт AES

из-за странных юридических причин двоичные файлы не публикуются обычным способом. Пустотное пространство обычно является лучшим вторым источником. Но с некоторых пор voidspace maintainer не обновлялся. Используйте zip из [https://www.dropbox.com/s/n6rckn0k6u4nqke/pycrypto-2.6.1.zip?dl=0]

Шаг 1: Установите Visual C++ 2010 Express из здесь.

(не устанавливайте пакет обновления 1 для Microsoft Visual Studio 2010 )

Шаг 2: Удалите все распространяемые пакеты Microsoft Visual C++ 2010 из Панели управления\Программы и компоненты. Если вы этого не сделаете, то установка завершится неудачей с неясной ошибкой "фатальная ошибка во время установки".

Шаг 3: Установка оффлайн версии Windows пакет SDK для Visual Studio 2010 с (v7. 1) от здесь. Это необходимо для 64-битных расширений. Windows имеет встроенный монтаж для ISOs, таких как Pismo.

Шаг 4:вам нужно установить файл ISO с пакетом аудита Pismo File Mount. Скачать Писмо от здесь

Шаг 5: щелкните правой кнопкой мыши загруженный файл ISO и выберите mount with Pismo. После этого установите Setup\SDKSetup.exe вместо установки.исполняемый.

шаг 6a: создайте vcvars64.летучая мышь файл в C:\Program файлы (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64, изменив каталог на C:\Program файлы (x86)\Microsoft Visual Studio version\VC\ в командной строке. Введите команду в командной строке: cd C:\Program Files (x86)\Microsoft Visual Studio version\VC\r

шаг 6b: Чтобы настроить это окно командной строки для 64-разрядных сборок командной строки, предназначенных для платформ x86, в командной строке введите: vcvarsall x86 клик здесь дополнительные параметры.

Шаг 7: в командной строке установите PyCrypto с помощью напечатать: C:\Python3X>pip install -U your_wh_file

У меня был Pycharm для python.

  1. на pycharm -> file -> setting -> project interpreter

  2. нажать на кнопку +

  3. искать "pycrypto" и установить пакет

Примечание: если у вас нет" Microsoft Visual C++ Compiler for Python 2.7 " установлен, то он будет запрашивать установку, после завершения установки попробуйте выполнить описанные выше шаги, он должен работать нормально.

Comments

    Ничего не найдено.