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


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

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

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

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

Есть идеи?

19 121

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 for " не удалось найти vcvarsall.bat " поскольку это корень вашей проблемы, это очень распространенная проблема при компиляции расширений 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\1.0, c:\mingw\msys\1.0\bin and c:\mingw\msys\1.0\sbin к вашему %PATH%. Если вы не знакомы, эта статья очень полезный. 3) в строке поиска выполните команду msys, и откроется терминал MSYS. Для тех, кто знаком с Cygwin, он работает аналогичным образом.

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

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

Можно построить PyCrypto с помощью инструментария Windows 7 SDK. Существует две версии 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.

Надеюсь, это поможет.

Для Окон 7:

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

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

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

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

Easy_install pycrypto

Для Ubuntu:

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

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

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

Например: root@xyz-виртуальная машина:~ / pycrypto-2.6.1#

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

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

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

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

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

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

Решение

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

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

Пример

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

C:\.....>set PATH=C:\MinGW\msys\1.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. Install 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++ Compiler for 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++ Express от MS. это даст вам компилятор C++, необходимый для компиляции кода PyCrypto.

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

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

Введите описание изображения здесь

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

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

Затем выполните команду из обычной командной строки windows.

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

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

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

Из Крипто.Шифр импорт AES

Из-за странных юридических причин двоичные файлы не публикуются обычным способом. Пустотное пространство обычно является лучшим вторым источником. Но с некоторых пор, сопровождающий voidspace не обновлялся. Используйте 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. Скачать Pismo из здесь

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

Шаг 6а: создать 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", то он будет запрашивать установку, после завершения установки попробуйте выполнить описанные выше шаги.