it-swarm.xyz

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

Я прочитал все остальные источники в Google и ветку SO, но ничего не получалось.

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

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

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

Есть идеи?

129
Coldblackice

Если у вас еще не установлена ​​среда разработки на 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

177
Michael Dillon

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

32
Jason R. Coombs

Спустя годы и годы, 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 ).

20
Smit Johnth

В общем

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

Вы должны скомпилировать PyCrypto с тем же компилятором, с которым была скомпилирована версия Python. Google для "Невозможно найти 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. Вам нужно будет связаться с тот же CRT (msvcr90.dll), что и Python.

Visual Studio 2010 Express ссылается с неверной версией CRT: msvcr100.dll.

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

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

18
user177800

Для VS2010:

SET VS90COMNTOOLS=%VS100COMNTOOLS%

Для VS2012:

SET VS90COMNTOOLS=%VS110COMNTOOLS%

затем позвоните:

pip install pyCrypto 
17
Chandan

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

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

pip install pycryptodome

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

13
SquareRootOfTwentyThree

Мне удалось получить 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 должен работать без ошибок. 

6
darnold0714

Для Windows 7:

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

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

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

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

easy_install pycrypto

Для Ubuntu:

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

Загрузите Pycrypto из " https://pypi.python.org/pypi/pycrypto "

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

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

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

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

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

5
JayaPrakash

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

5
user25064

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

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

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

1) Запустите vcvars32.bat или vcvars64.bat в зависимости от ситуации.

2) По запросу выполните «set MSSdk = 1»

3) В приглашении выполните «set DISTUTILS_USE_SDK = 1»

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

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

4
casevh

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

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

Как в мире я могу обойти это?

Решение

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

(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`
3
Bludzee
  1. Перейдите в "Microsoft Visual C++ Compiler для 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. Откройте командную строку с повышенными привилегиями Windows cmd.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

3
damian1baran

Попробуйте просто использовать:

pip install pycryptodome

или же:

pip install pycryptodomex

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

3
Kade

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

2
sizzzzlerz

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

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

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

из Crypto.Cipher импорт AES

1
Virendra Patel

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

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

enter image description here

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

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

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

1
Aniket Thakur

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

0
Zimmermann

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

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

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

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

Шаг 4: Вам необходимо установить файл ISO с помощью пакета аудита Pismo File Mount Audit. Скачать Pismo с здесь

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

Шаг 6a: Создайте файл vcvars64.bat в C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\AMD64, изменив каталог на C:\Program Files (x86)\Microsoft Visual Studio версия\VC\on командная строка . Введите команду в командной строке: 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

0
Asubiaro Toluwase Victor

У меня был Pycharm для питона.

  1. Перейти к pycharm -> file -> setting -> project interpreter

  2. Нажмите на +

  3. Найдите "pycrypto" и установите пакет

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

0
RAKESH