как установить pycrypto в windows?

<p>я прочитал все остальные источники в google и ветку so, но ничего не получалось.</p><p><code>python 2.7.3 32bit</code> установлен на <code>windows 7 64bit</code>. загрузка, распаковка, а затем попытка установить pycrypto приводит к <code>"unable to find vcvarsall.bat".</code></p><p>поэтому я устанавливаю mingw и добавляю его в строку установки в качестве предпочтительного компилятора. но тогда я получаю ошибку <code>"runtimeerror: chmod error".</code></p><p>как в мире я могу обойти это? я попытался использовать pip, который дает тот же результат. я нашел предварительно скомпилированный бинарный файл pycrypto 2.3 и установил его, но в системе его нигде нет (не работает).</p><p>есть идеи?</p>

<p>если у вас еще не установлена среда разработки на c/c++, совместимая с двоичными файлами visual studio, распространяемыми python.org, вам следует установить только чистые пакеты python или пакеты, для которых доступен двоичный файл windows.</p><p>к счастью, для windows доступны двоичные файлы pycrypto: <a href="http://www.voidspace.org.uk/python/modules.shtml#pycrypto">http://www.voidspace.org.uk/python/modules.shtml#pycrypto</a> </p><p><strong>обновление:</strong><br> как подсказывает @udi в комментарии ниже, следующая команда также устанавливает <code>pycrypto</code> и также может использоваться в <code>virtualenv</code>:</p><pre><code>easy\_install http://www.voidspace.org.uk/python/pycrypto-2.6.1/pycrypto-2.6.1.win32-py2.7.exe </code></pre><p>обратите внимание, чтобы выбрать соответствующую ссылку для вашей настройки из <a href="http://www.voidspace.org.uk/python/pycrypto-2.6.1/">этот список</a> </p><p>если вы ищете сборки для python 3.5, см. <a href="https://stackoverflow.com/q/32800336/4565685">pycrypto на python 3.5</a> </p>

<p>недавно microsoft выпустила отдельный, посвященный <a href="http://www.microsoft.com/en-us/download/details.aspx?id=44266">microsoft visual c++ compiler для python 2.7</a> . если вы используете python 2.7, просто установите этот компилятор и setuptools 6.0 или более поздней версии, и большинство пакетов с расширениями c теперь скомпилируются с готовностью.</p>

<p><strong>спустя годы и годы</strong>, python окончательно согласился на бинарный дистрибутив под названием <code>wheel</code>, который позволяет устанавливать даже двоичные расширения в windows без компилятора с простым <code>pip install packagename</code>. существует <a href="http://pythonwheels.com/">список популярных пакетов</a> с их статусом. pycrypto еще не существует, но, например, lxml, pyside и scrapy. </p><p><strong>отредактировано ноябрь 2015 г.</strong>: <code>pip uninstall pycrypto</code> & <code>pip install pycryptodome</code>. это <code>pycrypto</code> вилка с новыми функциями, и она поддерживает колесо. он заменяет <code>pycrypto</code>, поэтому существующий код будет продолжать работать (см. <a href="https://pycryptodome.readthedocs.org/en/latest/src/examples.html">https://pycryptodome.readthedocs.org/en/latest/src/examples.html</a> ).</p>

<h3>в общем</h3><p><code>vcvarsall.bat</code> является частью компилятора visual c++, вам нужно установить то, что вы пытаетесь установить. даже не пытайтесь иметь дело с minggw, если ваш python был скомпилирован с помощью набора инструментов visual studio и наоборот. даже <strong>версия</strong> цепочки инструментов microsoft важна. python, скомпилированный с vs 2008, не будет работать с расширениями, скомпилированными с vs 2010!</p><p>вы должны скомпилировать pycrypto с тем же компилятором, с которым была скомпилирована версия python. google для <em>"невозможно найти vcvarsall.bat"</em>, потому что это корень вашей проблемы, <a href="https://stackoverflow.com/questions/2817869/error-unable-to-find-vcvarsall-bat">это очень распространенная проблема при компиляции расширений python в windows.</a> </p><p> <a href="http://web.archive.org/web/20101221084639/http://nukeit.org/compile-python-2-7-packages-with-visual-studio-2010-express/">есть много информации и много, чтобы прочитать, чтобы получить это право на любой системе, на которой вы находитесь по этой ссылке.</a> </p><h3>остерегайтесь использовать visual studio 2010 или не использовать visual studio 2008</h3><p>насколько я знаю, следующее все еще верно. это было опубликовано в ссылке выше в июне 2010 года, где говорилось о попытке создать расширения с vs 2010 express с помощью установщиков python, доступных на python.org.</p><blockquote> <p>будьте осторожны, если вы делаете это. python 2.6 и 2.7 от python.org являются построен с помощью компиляторов visual studio 2008. вам нужно будет связаться с тот же crt (msvcr90.dll), что и python.</p> <p>visual studio 2010 express ссылается с неверной версией crt: msvcr100.dll.</p> <p>если вы сделаете это, вы также должны пересобрать python с visual studio 2010 экспресс. вы не можете использовать стандартный бинарный установщик python для окна. также вы не можете использовать любые расширения c/c++, созданные с использованием другого компилятор, чем visual studio 2010 (express).</p> </blockquote><p><em>мнение: это одна из причин, по которой я отказался от windows из-за всей серьезной работы по разработке для osx!</em></p>

<p>для vs2010:</p><pre><code>set vs90comntools=%vs100comntools% </code></pre><p>для vs2012:</p><pre><code>set vs90comntools=%vs110comntools% </code></pre><p>затем позвоните:</p><pre><code>pip install pycrypto </code></pre>

<p> <a href="http://www.pycryptodome.org/">pycryptodome</a> - это практически совместимый форк pycrypto с колесами windows, доступными на <a href="https://pypi.python.org/pypi/pycryptodome">pypi</a> .</p><p>вы можете установить его с помощью простого:</p><pre><code>pip install pycryptodome </code></pre><p>веб-сайт также содержит инструкции по его сборке из источников с компиляторами microsoft.</p>

<p>мне удалось получить <code>pycrypto</code> для компиляции с использованием <code>mingw32</code> и <code>msys</code>. это предполагает, что у вас установлены <code>pip</code> или <code>easy\_install</code>.</p><p>вот как я это сделал:</p><p>1) установить <a href="http://www.mingw.org/">mingw32</a> . ради этого объяснения давайте предположим, что он установлен в <code>c:\mingw</code>. при использовании установщика, который я рекомендую, выберите компилятор c++<code>.</code> msys должен быть установлен с <code>mingw</code></p><p>2) добавьте <code>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</code> к своему <code>%path%</code>. если вы не знакомы, <a href="https://stackoverflow.com/questions/6318156/adding-python-path-on-windows-7">эта статья</a> очень полезна.</p><p>3) в строке поиска запустите <code>msys</code>, и откроется терминал msys. для тех, кто знаком с <code>cygwin</code>, он работает аналогичным образом.</p><p>4) после этого из терминала msys <code>pip install pycrypto</code> должен работать без ошибок. </p>

<p><strong>для windows 7:</strong></p><p>чтобы установить pycrypto в windows,</p><p>попробуйте это в командной строке,</p><p>установите путь = c:\python27\scripts (то есть путь, где находится easy\_install)</p><p>затем выполните следующее,</p><p>easy\_install pycrypto</p><p><strong>для ubuntu:</strong></p><p>попробуй это,</p><p>загрузите pycrypto из " <a href="https://pypi.python.org/pypi/pycrypto">https://pypi.python.org/pypi/pycrypto</a> "</p><p>затем измените ваш текущий путь на загруженный путь, используя ваш терминал, и пользователь должен быть пользователем root:</p><p>например: root @ xyz-virtual-machine: ~/pycrypto-2.6.1 #</p><p>затем выполните следующие действия с помощью терминала:</p><p>python setup.py установить</p><p>это сработало для меня. надежда работает на всех ..</p>

<p>для тех, кто ищет python 3.4, я нашел <a href="https://github.com/axper/python3-pycrypto-windows-installer">git repo</a> с установщиком, который просто работает. вот прямые ссылки на <a href="https://github.com/axper/python3-pycrypto-windows-installer/blob/master/pycrypto-2.6.1.win-amd64-py3.4.exe?raw=true">x64</a> и <a href="https://github.com/axper/python3-pycrypto-windows-installer/blob/master/pycrypto-2.6.1.win32-py3.4.exe?raw=true">x32</a> </p>

<p>можно собрать pycrypto с помощью инструментария windows 7 sdk. существует две версии windows 7 sdk. оригинальная версия (для .net 3.5) включает компиляторы командной строки vs 2008. могут быть установлены как 32-, так и 64-битные компиляторы.</p><p>первым шагом является компиляция <a href="http://mpir.org/">mpir</a> для обеспечения быстрой арифметики. я задокументировал процесс, который я использую в библиотеке <a href="http://code.google.com/p/gmpy/">gmpy</a> . подробные инструкции по сборке mpir с использованием компилятора sdk можно найти в <a href="http://code.google.com/p/gmpy/source/browse/trunk/win\_x64\_sdk\_build.txt">sdk\_build</a> </p><p>ключевые шаги для использования компиляторов sdk из командной строки dos:</p><p>1) запустите vcvars32.bat или vcvars64.bat в зависимости от ситуации.</p><p>2) по запросу выполните «set mssdk = 1»</p><p>3) в приглашении выполните «set distutils\_use\_sdk = 1»</p><p>это должно позволить успешной установке «python setup.py install» при условии отсутствия других проблем с кодом c. но я смутно помню, что мне пришлось отредактировать пару файлов pycrypto, чтобы включить mpir и найти библиотеки mpir, но в данный момент у меня не работает система windows. пройдет несколько дней, прежде чем я успею воссоздать шаги. если вы не сообщили об успехе к тому времени, я опубликую шаги pycrypto. шаги предполагают, что вы смогли скомпилировать mpir.</p><p>надеюсь, это поможет. </p>

<blockquote> <p>поэтому я устанавливаю mingw и добавляю это в строку установки как компилятор выбора. но затем я получаю ошибку «runtimeerror: ошибка chmod».</p> </blockquote><p>эта ошибка <code>"runtimeerror: chmod error"</code> возникает из-за того, что скрипт установки не нашел команду <code>chmod</code>.</p><blockquote> <p>как в мире я могу обойти это?</p> </blockquote><h2>решение</h2><p>вам нужно только<strong> добавить двоичные файлы msys в path и повторно запустить скрипт установки </strong>.</p><p>(n.b .: обратите внимание, что mingw поставляется с msys так)</p><h2>пример</h2><p>например, если мы находимся в папке <code>c:\<..>\pycrypto-2.6.1\dist\pycrypto-2.6.1></code></p><p><code>c:\.....></code><strong><code>set path=c:\mingw\msys\1.0\bin;%path%</code></strong><br/> <code>c:\.....></code><strong><code>python setup.py install</code></strong></p><p>необязательно: перед повторным запуском сценария может потребоваться очистка:</p><pre><code>`c:\<..>\pycrypto-2.6.1\dist\pycrypto-2.6.1> python setup.py clean` </code></pre>

<ol> <li><p>перейдите в <a href="https://www.microsoft.com/en-us/download/details.aspx?id=44266">"<strong>microsoft visual c++ compiler для python 2.7</strong>"</a> и продолжайте, основываясь на "системных требованиях" (это то, что я сделал, чтобы соединить шаги ниже).</p></li> <li><p><strong>установить setuptools</strong> (setuptools 6.0 или более поздней версии требуется для python для автоматического определения этого пакета компилятора) <strong>либо:</strong> <code>pip install setuptools</code> <strong>или</strong> загрузите источник "setuptools bootstrapping installer" <a href="https://bootstrap.pypa.io/ez\_setup.py">из</a> , сохраните этот файл где-нибудь в вашей файловой системе как "ez\_python.py" и установите с помощью: <code>python ez\_python.py</code></p></li> <li><p><strong>установите колесо</strong> (колесо рекомендуется для создания предварительно собранных бинарных пакетов). вы можете установить его с помощью: <code>pip install wheel</code></p></li> <li><p>откройте командную строку с повышенными привилегиями windows cmd.exe (с «запуск от имени администратора»), чтобы <strong>установить «компилятор microsoft visual c++ для python 2.7»</strong> для всех пользователей. для этого вы можете использовать следующую команду: msiexec/i <code>c:\users\jozko\download\vcforpython27.msi allusers=1</code> просто используйте свой собственный путь к файлу: <code>msiexec /i <path to msi> allusers=1</code></p></li> <li><p><strong>теперь вы сможете установить pycrypto с помощью: <code>pip install pycrypto</code></strong></p></li> </ol>

<p>попробуйте просто использовать:</p><pre><code>pip install pycryptodome </code></pre><p>или же:</p><pre><code>pip install pycryptodomex </code></pre><p>источник: <a href="https://pypi.python.org/pypi/pycryptodome">https://pypi.python.org/pypi/pycryptodome</a> </p>

<p>возможно, это не оптимальное решение, но вы можете скачать и установить бесплатный пакет visual c++ express от ms. это даст вам компилятор c++, необходимый для компиляции кода pycrypto.</p>

<p>мой ответ может быть не связан с упомянутой здесь проблемой, но у меня была та же проблема с<strong> python 3.4 </strong>, где crypto.cipher не был допустимым импортом. поэтому я попытался установить pycrypto и столкнулся с проблемами.</p><p>после некоторых исследований, которые я нашел с 3.4, вы должны использовать<strong> pycryptodome </strong>.</p><p>я устанавливаю pycryptodome, используя pycharm, и я был хорош.</p><p>из<strong> crypto.cipher </strong>импорт aes</p>

<blockquote> <p>поэтому я устанавливаю mingw и добавляю его в строку установки в качестве предпочтительного компилятора. но затем я получаю ошибку «runtimeerror: ошибка chmod».</p> </blockquote><p>вам нужно установить пакет msys под mingw </p><p><img src="https://i.stack.imgur.com/6mfgs.png" alt="enter image description here"></p><p>и добавьте следующие записи в переменную path env.</p><ul> <li><code>c:\mingw\bin</code></li> <li><code>c:\mingw\msys\1.0\bin</code> [здесь вы найдете исполняемый файл chmod]</li> </ul><p>затем запустите вашу команду из обычной командной строки windows.</p>

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

<p> шаг 1: установите visual c++ 2010 express из <a href="http://download.microsoft.com/download/1/d/9/1d9a6c0e-fc89-43ee-9658-b9f0e3a76983/vc\_web.exe">здесь</a> . </p><p>(не устанавливайте microsoft visual studio 2010 с пакетом обновления 1)</p><p>шаг 2. удалите все распространяемые пакеты microsoft visual c++ 2010 из панели управления\программы и компоненты. если вы этого не сделаете, то установка завершится с ошибкой «неустранимая ошибка во время установки».</p><p>шаг 3. установите автономную версию windows sdk для visual studio 2010 (v7.1) из <a href="https://download.microsoft.com/download/f/1/0/f10113f5-b750-4969-a255-274341ac6bce/grmsdkx\_en\_dvd.iso">здесь</a> . это необходимо для 64-разрядных расширений. windows имеет встроенное крепление для iso, таких как pismo. </p><p>шаг 4: вам необходимо установить файл iso с помощью пакета аудита pismo file mount audit. скачать pismo с <a href="https://blogs.technet.microsoft.com/odsupport/2011/04/19/how-to-extract-the-contents-from-an-iso-file-without-burning-the-iso-to-disc/">здесь</a> </p><p>шаг 5: щелкните правой кнопкой мыши по загруженному iso-файлу и выберите mount с pismo. после этого установите setup\sdksetup.exe вместо setup.exe.</p><p>шаг 6a: создайте файл vcvars64.bat в c:\program files (x86)\microsoft visual studio 10.0\vc\bin\amd64, изменив каталог на c:\program files (x86)\microsoft visual studio версия\vc\on командная строка . введите команду в командной строке: <code>cd c:\program files (x86)\microsoft visual studio version\vc\r </code></p><p>шаг 6b: чтобы настроить это окно командной строки для 64-разрядных сборок командной строки, предназначенных для платформ x86, введите в командной строке: <code>vcvarsall x86</code> нажмите <a href="https://msdn.microsoft.com/en-us/library/x4d2c09s.aspx">здесь</a> , чтобы получить дополнительные параметры.</p><p> шаг 7: в командной строке установите pycrypto, введя: <code>c:\python3x>pip install -u your\_wh\_file</code> </p>

<p>у меня был pycharm для питона.</p><ol> <li> <p>перейти к <code>pycharm -> file -> setting -> project interpreter</code></p> </li> <li> <p>нажмите на <kbd>+</kbd></p> </li> <li> <p>найдите <code>"pycrypto"</code> и установите пакет</p> </li> </ol><p><strong>примечание:</strong> если у вас не установлен "компилятор microsoft visual c++ для python 2.7", он запросит установку, после завершения установки попробуйте выполнить описанные выше шаги, и она будет работать нормально.</p>