Как установить 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 и установил его, но его нигде нет в системе (не работает).

Любые идеи?


person Coldblackice    schedule 10.07.2012    source источник
comment
возможный дубликат ошибки : невозможно найти vcvarsall.bat   -  person    schedule 10.07.2012
comment
Если вы просто хотите установить, просто загрузите двоичный установщик PyCrypto   -  person bobobobo    schedule 20.12.2012
comment
Это очень смелый совет - установить пакет двоичной криптографии с неизвестного сервера из-за границы ...   -  person Darren Ringer    schedule 07.03.2015
comment
Несмотря на то, что в конечном итоге я выбрал выбранный ответ, я в конце концов уступил и сумел собрать пакет сам (хотя, конечно же, я не потрудился проверить какие-либо подписи на чем-либо, потому что действительно ли мы когда-либо действительно защищены?) Паранойя и апатия в стороне, однако, следующая ссылка решила все мои самые сложные проблемы и упростила процесс: blog.victorjabur.com/2011/06/05/   -  person Darren Ringer    schedule 20.05.2015
comment
PyCrypto мертв. Автор на время бросил. github.com/dlitz/pycrypto/issues/173   -  person Smit Johnth    schedule 31.05.2016
comment
Более того, у него есть возможность использовать переполнение буфера pony7.fr/ctf:public:32c3:cryptmsg   -  person Smit Johnth    schedule 18.06.2016
comment
@BobStein Зависит от. Pycryptodome совместим, т.е. вы можете сохранить работающий существующий код, но если вам все равно - я не знаю ответа.   -  person Smit Johnth    schedule 25.07.2018
comment
В настоящее время voidspace обнаруживает недействительный сертификат, какой-либо другой источник надежных двоичных файлов для Windows?   -  person Salvioner    schedule 12.04.2019


Ответы (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

person Michael Dillon    schedule 10.07.2012
comment
вы можете использовать easy_install для установки двоичных файлов с URL: easy_install http://www.voidspace.org.uk/downloads/pycrypto26/pycrypto-2.6.win32-py2.7.exe - person Udi; 17.09.2013
comment
Установщик по адресу voidspace.org.uk/python/modules.shtml#pycrypto у меня сработало. Один совет: если вы случайно запустите 64-разрядный установщик, но у вас установлена ​​32-разрядная версия Python 2.7, установщик завершится с ошибкой с предупреждением «Требуется версия Python 2.7», которого нет в реестре. - person Steve Saporta; 01.05.2014
comment
Установщик gui не удался для меня. easy_install успешно - person pscheit; 08.08.2014
comment
@Udi зачем вам easy_install для exe? - person Smit Johnth; 07.12.2014
comment
@SmitJohnth easy_install установит пакет в virtualenv (если он у вас есть) и подавит все графические взаимодействия (для автоматизации или просто для экономии времени). - person Udi; 07.12.2014
comment
Примечание. Я добился большего успеха с двоичным файлом Win32 для PyCrypto, чем с Win64. (Извините, это было давно; я забыл подробности.) Очевидно, Win32 PyCrypto должен быть установлен на Win32 Python. Это будет работать нормально, даже если ваша ОС - 64-битная Windows. - person George V. Reilly; 26.01.2015
comment
Я использую cx_Freeze для создания исполняемого файла Windows, и если я сделал только easy_install http://www.voidspace.org.uk/downloads/pycrypto26/pycrypto-2.6.win32-py2.7.exe, то файл .egg был загружен, но не был установлен в site-packages. Вместо этого мне пришлось загрузить .exe и просто установить его вручную. Таким образом, в site-packages была создана папка Crypto. - person Kohányi Róbert; 06.06.2015
comment
для нескольких версий в Windows (например, версия Python 2 по умолчанию) ... py -2 -m easy_install voidspace.org.uk/downloads/pycrypto26/pycry pto-2.6.win32-py2.7.exe - person steventaitinger; 03.09.2015
comment
Хм, выглядит хорошо. Я не думаю, что есть такая версия для pycrypto 2.7 alpha? Я считаю, что 2.7 alpha включает режим EAX AES, понимаете. - person trevorKirkby; 06.12.2015

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

person Jason R. Coombs    schedule 06.12.2014
comment
Ого, как интересно. Но все равно 84 Мб. И уже поздно смотреть мой ответ про колесо. - person Smit Johnth; 07.12.2014
comment
Даже с колесом это намного лучший вариант, чем биться головой о VS 2008 и vcvarsall.bat в тех случаях, когда вы хотите создать что-то из исходных текстов или использовать модуль без колеса. MSVC для Python может не появиться в долгосрочной перспективе, но сейчас он чрезвычайно полезен. - person GrandOpener; 16.07.2015
comment
Тем не менее, самое простое решение, которое я нашел; Мне всегда не нравилось полагаться на заранее созданные двоичные файлы со случайных (для меня) веб-сайтов. - person Myk Willis; 03.01.2016

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

person Smit Johnth    schedule 07.12.2014

Для VS2010:

SET VS90COMNTOOLS=%VS100COMNTOOLS%

Для VS2012:

SET VS90COMNTOOLS=%VS110COMNTOOLS%

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

pip install pyCrypto 
person Chandan    schedule 06.06.2013
comment
Для VS2013: SET VS90COMNTOOLS =% VS120COMNTOOLS% - person Jake1164; 01.10.2015
comment
Хотя в определенных случаях это может сработать, это НЕ решение. Вы должны убедиться, что все зависимости скомпилированы тем же компилятором, с которым был скомпилирован Python! - person Daniel van Flymen; 19.11.2015
comment
Как насчет VS2017 ?! Что мне ставить ?! - person mahshid.r; 09.07.2018
comment
@ mahshid.r вы можете проверить переменные среды для VSxxxCOMNTOOLS и получить имя переменной, а затем установить для переменной VS90COMNTOOLS значение VSxxxCOMNTOOLS. В CMD: 1. SET VS90COMNTOOLS =% VS140COMNTOOLS% 2. pip install pyCrypto - person Oriel Cochavi; 28.05.2019

В основном

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 Express. Вы не можете использовать стандартный двоичный установщик Python для Windows. Вы также не можете использовать какие-либо расширения C / C ++, созданные с помощью другого компилятора, кроме Visual Studio 2010 (Express).

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

person Community    schedule 10.07.2012
comment
Спасибо за понимание. Но боже мой, неужели это должно быть так утомительно (разочарование направлено на богов-питонов, а не на себя)? Я просто попытался установить другой пакет (mcrypt) как через setup.py, так и через pip, оба выходили с ошибками. Как вообще пользователи Windows устанавливают пакеты? Все ли они должны загружать VS 2008 Express? (У меня VS 2010, который, я думаю, не работает). - person Coldblackice; 11.07.2012
comment
нет, это не так; это не так в OSX или Linux. В Windows вы можете установить предварительно скомпилированные двоичные файлы для дистрибутивов Python по умолчанию. Если вы можете их найти, средства криптографии обычно недоступны из-за глупых ограничений экспорта в США. Но вы действительно хотите установить библиотеки encryption, которые вы сами не скомпилировали из исходников ???? Насколько это безопасно, я имею в виду на самом деле, откуда вы знаете, что они каким-то образом не были скомпрометированы? - person ; 11.07.2012
comment
Мнение: это одна из причин, по которой я отказался от Windows из-за серьезной работы по разработке OSX! Да ... Я загрузил python до того, как у меня был какой-либо компилятор C на моем устройстве ... Затем я получил Visual Studio 2013, чтобы немного поработать с Visual Basic ... Затем после этого я получил MinGW, чтобы я мог использовать GCC для компиляции C в Windows. Короче говоря, хотя частично это может быть моей ошибкой, я понятия не имею, какую среду разработки пытается использовать python. К счастью, множество пакетов Python доступно в виде двоичных файлов в Интернете, включая pycrypto. - person trevorKirkby; 06.12.2015

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

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

pip install pycryptodome

На веб-сайте также есть инструкции по его сборке из исходных кодов с помощью компиляторов Microsoft.

person SquareRootOfTwentyThree    schedule 20.09.2015

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

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

1) Установите MinGW32. Для объяснения предположим, что он установлен в C:\MinGW. При использовании установщика, который я рекомендую, выберите C ++ compiler. 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 после этого должен работать без ошибок.

person darnold0714    schedule 22.01.2014
comment
Похоже, в вашем решении не хватает некоторых шагов. возможно, вы захотите подробнее рассказать об этом решении. - person Rusty Weber; 21.05.2014

Для 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

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

person JayaPrakash    schedule 12.04.2015
comment
Я запустил это в Windows 7 и в первый раз получил сообщение об ошибке: ошибка: сценарий установки завершился с ошибкой: требуется Microsoft Visual C ++ 9.0 (невозможно найти vcvarsall.bat). Получите его на странице aka.ms/vcpython27. Установил это, снова запустил команду, и на этот раз она сработала. - person arie; 01.04.2016

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

person user25064    schedule 13.07.2015

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

pip install pycryptodome

or:

pip install pycryptodomex

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

person Kade    schedule 04.01.2017

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.

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

person casevh    schedule 10.07.2012

Если вы работаете в Windows и не можете установить Pycrypcto, просто используйте команду: pip install pycryptodome. Это работает как чудо, и это сделает вашу жизнь намного проще, чем пытаться делать множество настроек и настроек.

person john    schedule 22.05.2019

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

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

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

Решение

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

(Примечание: обратите внимание, что 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`
person Bludzee    schedule 24.09.2014

  1. Перейдите на страницу «Компилятор Microsoft Visual C ++ для Python 2.7 " и продолжайте в соответствии с" Системными требованиями "(это то, что я сделал, чтобы объединить приведенные ниже шаги).

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

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

  4. Откройте командную строку Windows с повышенными привилегиями cmd.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

person damian1baran    schedule 30.07.2016

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

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

Я устанавливаю пикриптодом с помощью pycharm, и у меня все получилось.

из Crypto.Cipher импортировать AES

person Virendra Patel    schedule 18.08.2017

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

person sizzzzlerz    schedule 10.07.2012

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

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

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

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

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

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

person Aniket Thakur    schedule 26.04.2015

Шаг 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. Загрузите Pismo с сайта здесь

Шаг 5: Щелкните загруженный файл ISO правой кнопкой мыши и выберите «Подключить с помощью 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 version \ 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

person Asubiaro Toluwase Victor    schedule 08.02.2018

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

  1. Go to pycharm -> file -> setting -> project interpreter

  2. Нажмите +

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

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

person RAKESH    schedule 04.07.2018