Як встановити PyCrypto в Windows?


140

Я читав усі інші джерела google та нитки SO, але нічого не працювало.

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

Тому я встановлюю MinGW і виконую цю функцію на лінії встановлення як компілятор за вибором. Але потім я отримую помилку"RuntimeError: chmod error".

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

Будь-які ідеї?



16
Якщо ви просто хочете встановити його , просто завантажте двійковий інсталятор
PyCrypto

12
Це дуже сміливі поради, встановлення пакету бінарної криптографії з невідомого сервера з-за кордону ...
Даррен Рінгер

Незважаючи на те, що я все-таки пішов із обраною відповіддю, я врешті-решт поступився і зумів самостійно скласти пакет (хоча досить впевнений, що я не намагався перевірити будь-які підписи на чому-небудь, бо насправді ми справді безпечні?) Параноїя та апатія однак, однак, наступне посилання вирішило всі мої найскладніші проблеми і зробило процес неспроможним
Даррен Рінгер

4
PyCrypto мертвий. Автор на деякий час скидав його. github.com/dlitz/pycrypto/isissue/173
Smit Johnth

Відповіді:


184

Якщо у вас ще не встановлено середовище розробки C / C ++, сумісне з бінарними файлами Visual Studio, поширюваними Python.org, тоді вам слід дотримуватися встановлення лише чистих пакетів Python або пакетів, для яких доступний бінарний файл Windows.

На щастя, доступні бінарні файли PyCrypto для Windows: 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


28
ви можете використовувати easy_install для встановлення бінарних файлів з URL:easy_install http://www.voidspace.org.uk/downloads/pycrypto26/pycrypto-2.6.win32-py2.7.exe
Udi

Для мене працював інсталятор voidspace.org.uk/python/modules.shtml#pycrypto . Одна порада: Якщо ви ненавмисно запустили 64-розрядний інсталятор, але у вас є 32-розрядна версія Python 2.7, програма інсталятора завершиться невдачею з попередженням "Потрібна версія 2.7 Python, яка не знайдена в реєстрі".
Стів Сапорта

1
мені не вдався інсталятор gui. easy_install
вдався

@Udi для чого потрібна easy_install для exe?
Smit Johnth

@SmitJohnth easy_installвстановить пакунок у virtualenv (якщо він у вас є) і придушить всі графічні взаємодії (автоматизувати або просто заощадити час).
Уді

32

Нещодавно Microsoft випустила автономний спеціалізований компілятор Microsoft Visual C ++ для Python 2.7 . Якщо ви використовуєте Python 2.7, просто встановіть цей компілятор та Setuptools 6.0 або новішої версії, і більшість пакетів із розширеннями C тепер будуть легко збиратись.


Нічого собі, як цікаво. Але все ж 84 Мб. І трохи пізно, дивіться мою відповідь про колесо.
Smit Johnth

1
Навіть з колесом, це набагато кращий варіант, ніж стукати головою проти VS 2008 та vcvarsall.bat у часи, коли ви хочете щось побудувати з джерела, або використовувати модуль, у якого немає колеса. MSVC для Python може не існувати в "довгостроковій перспективі", але зараз він надзвичайно корисний.
GrandOpener

1
Все-таки найпростіше рішення, яке я знайшов; Я завжди ненавиджу покладатися на заздалегідь створені бінарні файли з випадкових (для мене) веб-сайтів.
Мік Вілліс

28

Через роки і роки , 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

Для VS2010:

SET VS90COMNTOOLS=%VS100COMNTOOLS%

Для VS2012:

SET VS90COMNTOOLS=%VS110COMNTOOLS%

потім зателефонуйте:

pip install pyCrypto 

1
Для VS2013: SET VS90COMNTOOLS =% VS120COMNTOOLS%
Jake1164

2
Хоча це може працювати в певних випадках, це НЕ є рішенням. Вам потрібно переконатися, що будь-які залежності компілюються з тим самим компілятором, як і компільований Python!
Даніель ван Флаймен

1
Як щодо VS2017 ?! Що мені встановити ?!
mahshid.r

1
@ mahshid.r ви можете перевірити змінні середовища для VSxxxCOMNTOOLS і отримати ім'я змінної, а потім встановити для змінної VS90COMNTOOLS значення VSxxxCOMNTOOLS. В CMD: 1. "SET VS90COMNTOOLS =% VS140COMNTOOLS%" 2. pip встановити pyCrypto
Oriel Cochavi

18

В загальному

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!


2
Дякуємо за розуміння. Але добрі небеса, чи справді це повинно бути таким нудним (розчарування спрямоване на богів пітона, а не на себе)? Я просто спробував встановити інший пакет (mcrypt), як через setup.py, так і через pip, обидва виходили з помилками. Як у світі користувачі Windows встановлюють пакети? Чи всі вони повинні завантажити VS 2008 Express? (У мене є VS 2010, який, мабуть, не справляється з роботою).
Coldblackice

1
ні, це не так; це не так у OSX чи Linux. У Windows можна встановити попередньо складені бінарні файли для дистрибутивів Python за замовчуванням якщо ви зможете їх знайти , криптографічні матеріали зазвичай недоступні через дурні обмеження експорту в США. Але ви дійсно хочете встановити бібліотеки шифрування, які ви самі не збирали з джерела ???? Наскільки це безпечно, я маю на увазі насправді, як ти знаєш, що вони не були піддані компрометації?

"Думка. Це одна з причин, що я відмовився від Windows для всіх серйозних розробок для OSX!" Так ... Я завантажив python до того, як у мене був будь-який компілятор C на своєму пристрої ... Потім пізніше я отримав візуальну студію 2013, щоб трохи зайнятися візуальним базовим ... Потім після цього я отримав MinGW, щоб я міг використовувати GCC для компіляції C на windows. Коротше кажучи, хоча в чомусь, можливо, я є виною, я не маю уявлення, яке середовище розробки Python би намагався використовувати. На щастя, завантаження пакетів python доступне в онлайн-бінарних файлах, включаючи pycrypto.
trevorKirkby

15

PyCryptodome - це майже сумісна вилка PyCrypto з колесами Windows, доступними на pypi .

Встановити його можна за допомогою простого:

pip install pycryptodome

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


6

Мені вдалося дістати 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повинен працювати без помилок після цього.


Схоже, вашому рішенню не вистачає певних кроків. ви можете детальніше розглянути це рішення.
Расті Вебер

5

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

Це працює для мене. Надія працює для всіх ..


Я побіг це на Windows 7 і в перший раз , коли я отримав повідомлення про помилку: «Помилка: скрипт установки порушеної з помилкою :. Microsoft Visual C ++ 9.0 потрібно (Не вдається знайти vcvarsall.bat) Отримати його з aka.ms/vcpython27 ». Встановивши це, запустив команду ще раз, і цього разу вона спрацювала.
арі

5

Для тих, хто шукає python 3.4, я знайшов git repo з інсталятором, який просто працює. Ось прямі посилання для x64 та x32


4

Зробити PyCrypto можна за допомогою наборів інструментів Windows 7 SDK. Існує дві версії SDK для Windows 7. Оригінальна версія (для .Net 3.5) включає компілятори командного рядка VS 2008. Можуть бути встановлені як 32-, так і 64-бітні компілятори.

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

Основними кроками для використання компіляторів SDK з запиту DOS є:

1) Запустіть або vcvars32.bat, або vcvars64.bat у відповідних випадках.

2) У запиті виконайте "встановити MSSdk = 1"

3) У запиті виконайте "встановити DISTUTILS_USE_SDK = 1"

Це повинно дозволити "python setup.py install" досягти успіху, припускаючи, що немає інших проблем із кодом C. Але я смутно пам’ятаю, що мені довелося відредагувати пару файлів PyCrypto, щоб увімкнути mpir та знайти бібліотеки mpir, але наразі у мене не працює система Windows. Мине пару днів, перш ніж я встигну відтворити кроки. Якщо ви ще не повідомили про успіх, я опублікую кроки PyCrypto. Етапи передбачають, що ви змогли скласти mpir.

Я сподіваюся, що це допомагає.



3

Тому я встановлюю MinGW і виконую цю функцію на лінії встановлення як компілятор за вибором. Але потім я отримую помилку "RuntimeError: chmod помилка".

Ця помилка "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`

3
  1. Перейдіть до " Компілятор Microsoft Visual C ++ для Python 2.7 " та продовжуйте базуватися на "Системних вимогах" (це я зробив, щоб скласти нижче кроки).

  2. Установка Setuptools (Setuptools 6,0 або пізнішої версії потрібно для Python , щоб автоматично виявити цей пакет компілятора) , або: pip install setuptools або скачати «Setuptools самонастроювання установки» джерело з , збережіть цей файл Somwhere на вашому filestystem як «ez_python.py» і встановити з:python ez_python.py

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

  4. Відкрийте Windows підвищений командний рядок cmd.exe (з "Запустити як адміністратор"), щоб встановити "Microsoft Visual C ++ Compiler for Python 2.7" для всіх користувачів. Ви можете використовувати наступну команду для цього: msiexec / я C:\users\jozko\download\VCForPython27.msi ALLUSERS=1просто використовую свій власний шлях до файлу:msiexec /i <path to MSI> ALLUSERS=1

  5. Тепер ви маєте змогу встановити pycrypto за допомогою: pip install pycrypto


3

Якщо ви працюєте в Windows і боретеся з установкою Pycrypcto, просто використовуйте: pip install pycryptodome. Це працює як диво, і це зробить ваше життя набагато простішим, ніж намагатися зробити багато конфігурацій та налаштувань.


2

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


2

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

Після деяких досліджень, які я виявив, що було проведено 3,4, слід використовувати пікриптодом .

Я встановлюю пікриптодом за допомогою pycharm, і мені було добре.

з імпорту AES з Crypto.Cipher


1

Тому я встановлюю MinGW і виконую цю функцію на лінії встановлення як компілятор за вибором. Але потім я отримую помилку "RuntimeError: chmod помилка".

Вам потрібно встановити пакунок msys під MinGW

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

і додайте наступні записи у змінну PATH env.

  • C:\MinGW\bin
  • C:\MinGW\msys\1.0\bin [Тут ви знайдете виконуваний chmod]

Потім запустіть свою команду з звичайного командного рядка Windows.


0

Через дивні юридичні причини бінарні файли не публікуються у звичайному порядку. Зазвичай порожній простір - найкраще друге джерело. Але оскільки доволі довгий час утримувач пустоти не оновлювався. Використовуйте поштовий індекс від [ https://www.dropbox.com/s/n6rckn0k6u4nqke/pycrypto-2.6.1.zip?dl=0]


2
Завантажте бінарні файли з dropbox.No wai.
Smit Johnth

Я завантажив двійкове і відсканував його за допомогою VirusTotal. Звичайно, це означає лише, що він не має вірусу, не те, що він не має криптографічного заднього куточка. На щастя, я використовую його лише для розробки, оскільки я розміщую цей проект на PythonAnywhere.
Діапазон проти дальності

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 має вбудований монтаж для таких ISO, як Pismo.

Крок 4: Вам потрібно встановити файл ISO з пакетом аудиту файлів Pismo File Mount. Завантажте 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


0

У мене був Pycharm для python.

  1. Йти до pycharm -> file -> setting -> project interpreter

  2. Натисніть на +

  3. Шукайте "pycrypto"та встановлюйте пакет

Примітка. Якщо у вас не встановлено "Компілятор Microsoft Visual C ++ для Python 2.7", він запропонує встановити, щойно установка завершена, спробуйте виконати вищезазначені кроки, і це повинно працювати нормально.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.