Я прочитал все остальные источники в Google и ветку SO, но ничего не получалось.
Python 2.7.3 32bit
установлен на Windows 7 64bit
. Загрузка, распаковка, а затем попытка установить PyCrypto приводит к "Unable to find vcvarsall.bat".
Поэтому я устанавливаю MinGW и добавляю его в строку установки в качестве предпочтительного компилятора. Но тогда я получаю ошибку "RuntimeError: chmod error".
Как в мире я могу обойти это? Я попытался использовать pip, который дает тот же результат. Я нашел предварительно скомпилированный бинарный файл PyCrypto 2.3 и установил его, но в системе его нигде нет (не работает).
Есть идеи?
Если у вас еще не установлена среда разработки на 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++ Compiler для Python 2.7 . Если вы используете Python 2.7, просто установите этот компилятор и Setuptools 6.0 или более поздней версии, и большинство пакетов с расширениями C теперь скомпилируются с готовностью.
Спустя годы и годы, 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 ).
vcvarsall.bat
является частью компилятора Visual C++, вам нужно установить то, что вы пытаетесь установить. Даже не пытайтесь иметь дело с MingGW, если ваш Python был скомпилирован с помощью набора инструментов Visual Studio и наоборот. Даже версия цепочки инструментов Microsoft важна. Python, скомпилированный с VS 2008, не будет работать с расширениями, скомпилированными с VS 2010!
Вы должны скомпилировать PyCrypto с тем же компилятором, с которым была скомпилирована версия Python. Google для "Невозможно найти vcvarsall.bat", потому что это корень вашей проблемы, это очень распространенная проблема при компиляции расширений Python в Windows.
Насколько я знаю, следующее все еще верно. Это было опубликовано в ссылке выше в июне 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!
Для VS2010:
SET VS90COMNTOOLS=%VS100COMNTOOLS%
Для VS2012:
SET VS90COMNTOOLS=%VS110COMNTOOLS%
затем позвоните:
pip install pyCrypto
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
должен работать без ошибок.
Для 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 установить
Это сработало для меня. Надежда работает на всех ..
Можно собрать 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.
Надеюсь, это поможет.
Поэтому я устанавливаю 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`
Перейдите в "Microsoft Visual C++ Compiler для Python 2.7" и продолжайте, основываясь на "Системных требованиях" (это то, что я сделал, чтобы соединить шаги ниже).
Установить setuptools (setuptools 6.0 или более поздней версии требуется для Python для автоматического определения этого пакета компилятора) либо:pip install setuptools
или загрузите источник "Setuptools bootstrapping installer" из , сохраните этот файл где-нибудь в вашей файловой системе как "ez_python.py" и установите с помощью: python ez_python.py
Установите колесо (колесо рекомендуется для создания предварительно собранных бинарных пакетов). Вы можете установить его с помощью: pip install wheel
Откройте командную строку с повышенными привилегиями 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
Теперь вы сможете установить pycrypto с помощью: pip install pycrypto
Попробуйте просто использовать:
pip install pycryptodome
или же:
pip install pycryptodomex
Возможно, это не оптимальное решение, но вы можете скачать и установить бесплатный пакет Visual C++ Express от MS. Это даст вам компилятор C++, необходимый для компиляции кода PyCrypto.
Мой ответ может быть не связан с упомянутой здесь проблемой, но у меня была та же проблема с Python 3.4 , где Crypto.Cipher не был допустимым импортом. Поэтому я попытался установить PyCrypto и столкнулся с проблемами.
После некоторых исследований, которые я нашел с 3.4, вы должны использовать pycryptodome .
Я устанавливаю pycryptodome, используя pycharm, и я был хорош.
из Crypto.Cipher импорт AES
Поэтому я устанавливаю MinGW и добавляю его в строку установки в качестве предпочтительного компилятора. Но затем я получаю ошибку «RuntimeError: ошибка chmod».
Вам нужно установить пакет msys под MinGW
и добавьте следующие записи в переменную PATH env.
C:\MinGW\bin
C:\MinGW\msys\1.0\bin
[Здесь вы найдете исполняемый файл chmod]Затем запустите вашу команду из обычной командной строки Windows.
По странным юридическим причинам двоичные файлы не публикуются обычным способом. Voidspace обычно лучший второй источник. Но с тех пор сопровождающий voidspace не обновлялся. Используйте Zip от [ https://www.dropbox.com/s/n6rckn0k6u4nqke/pycrypto-2.6.1.zip?dl=0]
Шаг 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
У меня был Pycharm для питона.
Перейти к pycharm -> file -> setting -> project interpreter
Нажмите на +
Найдите "pycrypto"
и установите пакет
Примечание: Если у вас не установлен "Компилятор Microsoft Visual C++ для Python 2.7", он запросит установку, после завершения установки попробуйте выполнить описанные выше шаги, и она будет работать нормально.