Jak zainstalować PyCrypto w systemie Windows?

Przeczytałem każde inne źródło google i tak dalej, nic nie działa.

Python 2.7.3 32bit zainstalowany na Windows 7 64bit. Pobieranie, rozpakowywanie, a następnie próba zainstalowania PyCrypto skutkuje "Unable to find vcvarsall.bat".

Więc instaluję MinGW i zaznaczam to na linii install jako kompilator z wyboru. Ale wtedy dostaję błąd "RuntimeError: chmod error".

Jak mam to obejść? Próbowałem użyć pip, co daje ten sam wynik. Znalazłem prebuilt PyCrypto 2.3 binary i zainstalowałem to, ale nigdzie nie ma Znalezione w systemie (nie działa). Jakieś pomysły?
Author: Coldblackice, 2012-07-10

19 answers

Jeśli nie masz jeszcze zainstalowanego środowiska programistycznego C / C++, które jest kompatybilne z programami binarnymi Visual Studio dystrybuowanymi przez Python.org, następnie należy trzymać się instalacji tylko czystych pakietów Pythona lub pakietów, dla których dostępny jest binarny system Windows.

Na szczęście są dostępne binaria PyCrypto Dla Windows: http://www.voidspace.org.uk/python/modules.shtml#pycrypto

UPDATE:
Jak sugeruje @Udi w komentarzu poniżej, poniższe polecenie instaluje również pycrypto i może być również użyte w virtualenv:

easy_install http://www.voidspace.org.uk/python/pycrypto-2.6.1/pycrypto-2.6.1.win32-py2.7.exe

Uwaga, aby wybrać odpowiedni link do konfiguracji z tej listy

Jeśli szukasz kompilacji dla Pythona 3.5, zobacz PyCrypto on python 3.5
 168
Author: Michael Dillon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:54:41

Microsoft niedawno wydał samodzielny, dedykowany kompilator Microsoft Visual C++ dla Pythona 2.7 . Jeśli używasz Pythona 2.7, po prostu zainstaluj ten kompilator i Setuptools 6.0 lub nowszy, a większość pakietów z rozszerzeniami C będzie się teraz łatwo kompilować.

 30
Author: Jason R. Coombs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-06 01:22:05

Ogólnie

vcvarsall.bat jest częścią kompilatora Visual C++, potrzebujesz tego, aby zainstalować to, co próbujesz zainstalować. Nawet nie próbuj radzić sobie z MingGW, jeśli twój Python został skompilowany z pakietem narzędzi Visual Studio i vice versa. Nawet wersja łańcucha narzędzi Microsoft jest ważna. Python skompilowany z VS 2008 nie będzie działał z rozszerzeniami skompilowanymi Z VS 2010!

Musisz skompilować PyCrypto tym samym kompilatorem, z którym została skompilowana wersja Pythona. Google dla " nie można znaleźć vcvarsall.bat" ponieważ jest to główny problem, jest to bardzo powszechny problem ze kompilacją rozszerzeń Pythona w systemie Windows.

Jest wiele informacji i wiele do przeczytania, aby uzyskać to prawo w każdym systemie, na którym jesteś z tym linkiem.

Uważaj używając Visual Studio 2010 lub nie używając Visual Studio 2008

Z tego, co wiem, to nadal prawda. To zostało zamieszczone w linku powyżej w Czerwiec, 2010 nawiązując do próby zbudowania rozszerzeń z VS 2010 Express przeciwko instalatorom Pythona dostępnym na python.org.

Uważaj, jeśli to zrobisz. Python 2.6 i 2.7 z python.org są zbudowany z kompilatorów Visual Studio 2008. Będziesz musiał połączyć się z ten sam CRT (msvcr90.dll) jako Python.

Visual Studio 2010 Express links with the wrong CRT version: msvcr100dll.

Jeśli to zrobisz, musisz również ponownie zbudować Pythona za pomocą Visual Studio 2010 Express. Nie można użyć standardowego Instalatora binarnego Pythona do Okna. Nie można też używać żadnych rozszerzeń C / C++ zbudowanych z innego kompilator niż Visual Studio 2010 (Express).

opinia: to jeden z powodów, dla których porzuciłem Windows dla wszystkich poważnych prac rozwojowych dla OSX!

 17
Author: feeling abused and harassed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:15

Dla VS2010:

SET VS90COMNTOOLS=%VS100COMNTOOLS%

Dla VS2012:

SET VS90COMNTOOLS=%VS110COMNTOOLS%

Następnie Wywołaj:

pip install pyCrypto 
 17
Author: Chandan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-06 07:09:41

Po latach, python w końcu zgodził się na binarny disribution o nazwie wheel, który pozwala zainstalować nawet binarne rozszerzenia w systemie Windows bez posiadania kompilatora z prostym pip install packagename. Istnieje lista popularnych pakietów z ich statusem. Pycrypto jeszcze nie istnieje, ale na przykład lxml, PySide i Scrapy.

Edytowane Listopad 2015: pip uninstall pycrypto & pip install pycryptodome. Jest to widelec pycrypto z nowymi funkcjami i obsługuje koła. Zastępuje pycrypto, więc istniejący kod będzie kontynuuj pracę (patrz https://pycryptodome.readthedocs.org/en/latest/src/examples.html )

 17
Author: Smit Johnth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-27 20:16:05

PyCryptodome jest prawie kompatybilnym widelcem PyCrypto z kołami Windows dostępnymi napypi .

Możesz go zainstalować za pomocą prostego:

pip install pycryptodome

Strona zawiera instrukcje, aby zbudować ją ze źródeł z kompilatorami Microsoft zbyt.

 12
Author: SquareRootOfTwentyThree,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-21 19:45:31

Udało mi się uzyskać pycrypto do kompilacji za pomocą MinGW32 i MSYS. Zakłada to, że masz zainstalowane pip lub easy_install.

Oto Jak to zrobiłem:

1) Zainstaluj MinGW32 . Dla tego wyjaśnienia Załóżmy, że jest on zainstalowany w C:\MinGW. Podczas korzystania z instalatora, który polecam, wybierz kompilator C++ . MSYS powinien zainstalować z MinGW

2) Dodaj 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 do swojego %PATH%. Jeśli nie jesteś zaznajomiony, ten artykuł jest bardzo pomocne.

3) z paska wyszukiwania Uruchom msys i otworzy się terminal MSYS. Dla osób zaznajomionych z Cygwin, działa to w podobny sposób.

4) z poziomu terminala MSYS pip install pycrypto powinien działać bez błędów po tym.

 6
Author: darnold0714,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:23
 5
Author: user25064,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-13 14:50:39

Możliwe jest zbudowanie PyCrypto przy użyciu zestawów narzędzi Windows 7 SDK. Istnieją dwie wersje Windows 7 SDK. Oryginalna wersja (dla. Net 3.5) zawiera Kompilatory wiersza poleceń VS 2008. Można zainstalować Kompilatory 32 - i 64-bitowe.

Pierwszym krokiem jest skompilowanie mpir w celu zapewnienia szybkiej arytmetyki. Udokumentowałem proces, którego używam w bibliotece gmpy . Szczegółowe instrukcje budowania mpir przy użyciu kompilatora SDK znajdują się na stronie sdk_build

Kluczowe kroki użycia kompilatorów SDK z wiersza polecenia DOS to:

1) Uruchom albo vcvars32.bat lub vcvars64.bat odpowiednio.

2) w wierszu polecenia wykonaj "set MSSdk=1"

3) w wierszu polecenia wykonaj "set DISTUTILS_USE_SDK=1"

To powinno pozwolić "python setup.py install", aby odnieść sukces zakładając, że nie ma innych problemów z kodem C. Ale pamiętam, że musiałem edytować kilka plików PyCrypto, aby włączyć mpir i znaleźć biblioteki mpir, ale w tej chwili nie mam systemu Windows. Minie kilka dni, zanim będę miał czas na odtworzenie kroków. Jeśli nie zgłosiłeś sukcesu do tego czasu, opublikuję kroki PyCrypto. Kroki zakładają, że udało Ci się skompilować mpir.

Mam nadzieję, że to pomoże.

 4
Author: casevh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-10 07:21:24

Dla Windows 7:

Aby zainstalować Pycrypto w Windows,

Spróbuj tego w wierszu polecenia,

Set path = C: \ Python27 \ Scripts (tzn. ścieżka, w której znajduje się easy_install)

Następnie wykonaj następujące,

Easy_install pycrypto

Dla Ubuntu:

Spróbuj tego,

Pobierz Pycrypto z " https://pypi.python.org/pypi/pycrypto "

Następnie zmień bieżącą ścieżkę na pobraną za pomocą terminala i użytkownika powinien być root:

Eg: root@xyz-virtual-machine:~ / pycrypto-2.6.1 #

Następnie wykonaj następujące czynności używając terminala:

Python setup.py install

U mnie działa. Nadzieja działa na wszystkich..

 4
Author: JayaPrakash,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-12 09:46:35

Więc instaluję MinGW i zaznaczam to na linii install jako kompilator z wyboru. Ale potem dostaję błąd "RuntimeError: błąd chmod".

Ten błąd "RuntimeError: chmod error" występuje, ponieważ skrypt instalacyjny nie znalazł polecenia chmod.

Jak mam to obejść?

Rozwiązanie

Wystarczy dodać pliki binarne MSYS do ścieżki i ponownie uruchomić skrypt instalacyjny.

(Uwaga: zauważ, że MinGW pochodzi z MSYS więc )

Przykład

Na przykład, jeśli jesteśmy w folderze 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

Opcjonalne: może być konieczne wyczyszczenie przed ponownym uruchomieniem skryptu:

`C:\<..>\pycrypto-2.6.1\dist\pycrypto-2.6.1> python setup.py clean`
 3
Author: Bludzee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-23 23:31:05
  1. Przejdź do "Microsoft Visual C++ Compiler for Python 2.7" i kontynuować w oparciu o " wymagania systemowe "(to jest to, co zrobiłem, aby umieścić poniżej kroki razem).

  2. Install setuptools (setuptools 6.0 lub nowszy jest wymagany, aby Python automatycznie wykrył ten pakiet kompilatora) albo przez: pip install setuptools lub Pobierz" Setuptools bootstrapping installer " źródło z , zapisz ten plik na swoim systemie plików jako "ez_python.py" i zainstalować z: python ez_python.py

  3. Install wheel (wheel jest zalecany do tworzenia gotowych pakietów binarnych). Można go zainstalować za pomocą: pip install wheel

  4. Otwórz okno okna podwyższonego wiersza polecenia cmd.exe (z "Run as administrator") do zainstalować "Microsoft Visual C++ Compiler for Python 2.7" dla wszystkich użytkowników. Możesz w tym celu użyć następującego polecenia: msiexec / i C:\users\jozko\download\VCForPython27.msi ALLUSERS=1 po prostu użyj własnej ścieżki do pliku: msiexec /i <path to MSI> ALLUSERS=1

  5. Teraz ty powinien być w stanie zainstalować pycrypto z: pip install pycrypto

 3
Author: damian1baran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-30 22:12:01

Spróbuj po prostu użyć:

pip install pycryptodome

Lub:

pip install pycryptodomex

Źródło: https://pypi.python.org/pypi/pycryptodome

 3
Author: Kade,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-04 16:22:09

To prawdopodobnie nie jest optymalne rozwiązanie, ale możesz pobrać i zainstalować darmowy pakiet Visual C++ Express od MS. To da ci kompilator C++, którego potrzebujesz do skompilowania kodu PyCrypto.

 2
Author: sizzzzlerz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-10 01:51:15

Więc instaluję MinGW i zaznaczam to na linii install jako kompilator z wyboru. Ale potem dostaję błąd "RuntimeError: błąd chmod".

Musisz zainstalować pakiet msys pod MinGW

Tutaj wpisz opis obrazka

I dodaj następujące wpisy w zmiennej PATH env.

  • C:\MinGW\bin
  • C:\MinGW\msys\1.0\bin [Tutaj znajdziesz plik wykonywalny chmod]

Następnie uruchom polecenie z zwykłego wiersza polecenia systemu windows.

 1
Author: Aniket Thakur,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-26 17:47:00

Moja odpowiedź może nie być związana z problemem wspomnieć tutaj, ale miałem ten sam problem z Python 3.4 Gdzie Crypto.Szyfr nie był prawidłowym importem. Próbowałem więc zainstalować PyCrypto i napotkałem problemy.

Po kilku badaniach znalazłem z 3.4 należy użyć pycryptodome .

Zainstalowałem pycryptodome używając pycharm i byłem dobry.

From Crypto.Cipher import AES

 1
Author: Virendra Patel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-18 17:01:19

Z powodu dziwnych powodów prawnych, binaria nie są publikowane w normalny sposób. Voidspace jest zwykle najlepszym drugim źródłem. Ale od dłuższego czasu opiekun voidspace nie aktualizował się. Użyj zip z [ https://www.dropbox.com/s/n6rckn0k6u4nqke/pycrypto-2.6.1.zip?dl=0]

 0
Author: Zimmermann,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-23 21:53:09

Krok 1: Zainstaluj Visual C++ 2010 Express z tutaj .

(nie instaluj Microsoft Visual Studio 2010 Service Pack 1)

Krok 2: Usuń wszystkie pakiety redystrybucyjne Microsoft Visual C++ 2010 z Panelu sterowania\Programy i funkcje. Jeśli tego nie zrobisz, instalacja zawiedzie z niejasnym błędem "Błąd krytyczny podczas instalacji".

Krok 3: zainstaluj wersję offline Windows SDK dla Visual Studio 2010 (v7.1) z tutaj . To jest wymagany dla rozszerzeń 64-bitowych. Windows ma wbudowany montaż dla Izos jak Pismo.

Krok 4: musisz zainstalować plik ISO z plikiem Pismo File Mount Audit Package. Pobierz Pismo z tutaj

Krok 5: Kliknij prawym przyciskiem myszy pobrany plik ISO i wybierz mount with Pismo. Następnie zainstaluj Setup\SDKSetup.exe zamiast setup.exe.

Krok 6a: Utwórz vcvars64.plik bat w C:\Program Files(x86) \ Microsoft Visual Studio 10.0 \ VC \ bin \ amd64 by changing directory na C:\Program Files (x86) \ Microsoft Visual Studio version\VC\ w wierszu polecenia. Wpisz polecenie w wierszu polecenia: cd C:\Program Files (x86)\Microsoft Visual Studio version\VC\r

Krok 6b: Aby skonfigurować to okno wiersza poleceń dla 64-bitowych kompilacji wiersza poleceń przeznaczonych dla platform x86, w wierszu poleceń wpisz: vcvarsall x86 Kliknij tutaj aby uzyskać więcej opcji.

Krok 7: w wierszu polecenia zainstaluj PyCrypto, wpisując: C:\Python3X>pip install -U your_wh_file

 0
Author: Asubiaro Toluwase Victor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-08 04:45:33

Miałem Pycharm dla Pythona.

  1. Przejdź do pycharm -> file -> setting -> project interpreter

  2. Kliknij na +

  3. Wyszukaj "pycrypto" i zainstaluj pakiet

Uwaga: Jeśli nie masz zainstalowanego" Microsoft Visual C++ Compiler for Python 2.7", wyświetli monit o instalację, po zakończeniu instalacji spróbuj powyższych kroków, powinno działać dobrze.

 0
Author: RAKESH,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-04 15:50:34