Windows에서 PyCrypto를 어떻게 설치합니까?


140

나는 아무것도 작동하지 않고 다른 모든 Google 소스와 SO 스레드를 읽었습니다.

Python 2.7.3 32bit에 설치되었습니다 Windows 7 64bit. PyCrypto 다운로드, 추출 및 설치 시도"Unable to find vcvarsall.bat".

그래서 MinGW를 설치하고 선택한 컴파일러로 설치 라인에 고정시킵니다. 그러나 나는 오류를 얻는다"RuntimeError: chmod error".

이 문제를 어떻게 해결할 수 있습니까? 나는 같은 결과를주는 pip를 사용해 보았습니다. 사전 빌드 된 PyCrypto 2.3 바이너리를 찾아서 설치했지만 시스템에서 찾을 수 없습니다 (작동하지 않음).

어떤 아이디어?




12
해외에서 알려지지 않은 서버에서 바이너리 암호화 패키지를 설치하는 것은 대담한 조언입니다.
Darren Ringer

선택한 답변을 끝내더라도 결국에는 패키지를 직접 작성하고 관리했습니다. (실제로 우리는 진정으로 안전하기 때문에 무엇이든 서명을 확인하지 않아도되지만) 편집증과 무관심 그러나 다음 링크는 가장 어려운 모든 문제를 해결하고 프로세스를 간단
Darren Ringer

4
PyCrypto가 죽었습니다. 저자는 잠시 동안 그것을 떨어 뜨렸다. github.com/dlitz/pycrypto/issues/173
Johnth를 보내십시오

답변:


184

Python.org에서 배포 한 Visual Studio 바이너리와 호환되는 C / C ++ 개발 환경이 설치되어 있지 않은 경우 Windows 바이너리를 사용할 수있는 순수한 Python 패키지 또는 패키지 만 설치해야합니다.

다행히 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 용 빌드를 찾고 있다면 Python 3.5의 PyCrypto를 참조하십시오.


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이있는 경우 "Python 버전 2.7이 필요합니다. 레지스트리에 없습니다"라는 경고와 함께 설치 프로그램이 실패합니다.
Steve Saporta

1
GUI 설치 프로그램이 실패했습니다. easy_install 성공
pscheit

@ Udi 왜 EXE를 위해 easy_install이 필요합니까?
Johnth

@SmitJohnth easy_install는 패키지를 virtualenv (있는 경우)에 설치하고 모든 그래픽 상호 작용을 억제합니다 (자동화 또는 시간 절약).
Udi

32

Microsoft는 최근 Python 2.7 용 독립형 전용 Microsoft Visual C ++ 컴파일러를 출시했습니다 . Python 2.7을 사용하는 경우 해당 컴파일러 및 Setuptools 6.0 이상을 설치하면 C 확장자를 가진 대부분의 패키지가 즉시 컴파일됩니다.


와, 정말 재미 있어요. 그러나 여전히 84 Mb. 그리고 조금 늦었습니다. wheel에 대한 내 대답을보십시오.
Johnth

1
휠을 사용하더라도 소스에서 무언가를 만들거나 휠이없는 모듈을 사용하려는 경우 VS 2008 및 vcvarsall.bat에 대해 머리를 두드리는 것보다 훨씬 나은 옵션입니다. 파이썬 용 MSVC는 "장기"에 없을 수도 있지만 지금은 매우 유용합니다.
GrandOpener

1
여전히 내가 찾은 가장 쉬운 솔루션; 나는 항상 (나에게) 임의의 웹 사이트에서 미리 작성된 바이너리에 의존하는 것을 싫어했습니다.
Myk Willis

28

몇 년과 몇 년이 지난 후 , 파이썬은 마침내 wheel컴파일러를 사용하지 않고도 Windows에 바이너리 확장을 설치할 수있는 바이너리 배포에 동의했습니다 pip install packagename. 이 인기있는 패키지의 목록 그들의 상태는. Pycrypto는 아직 없지만 lxml, PySide 및 Scrapy가 있습니다.

2015 년 11 월 수정 : 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
특정 상황에서는 이것이 효과가있을 수 있지만 이것은 해결책이 아닙니다. 파이썬이 컴파일 된 것과 동일한 컴파일러로 종속성을 컴파일해야합니다!
Daniel van Flymen

1
VS2017은 어떻습니까?! 무엇을 설정해야합니까?!
mahshid.r

1
@ mahshid.r VSxxxCOMNTOOLS의 환경 변수를 확인하고 변수 이름을 얻은 다음 VS90COMNTOOLS 변수를 VSxxxCOMNTOOLS 값으로 설정할 수 있습니다. CMD에서 : 1. "SET VS90COMNTOOLS은 = % VS140COMNTOOLS %"2. PIP pyCrypto 설치
오리 엘 Cochavi

18

일반적으로

vcvarsall.batVisual C ++ 컴파일러의 일부이므로 설치하려는 것을 설치해야합니다. 파이썬이 Visual Studio 툴체인으로 컴파일 된 경우에도 MingGW를 다루려고 시도하지 마십시오. 심지어 버전 은 Microsoft 툴 체인의 중요합니다. VS 2008로 컴파일 된 Python은 VS 2010으로 컴파일 된 확장에서 작동하지 않습니다!

PyCrypto는 Python 버전과 동일한 컴파일러로 컴파일해야합니다. Google은 "vcvarsall.bat를 찾을 수 없습니다" 는 문제의 근원이기 때문에 Windows에서 Python 확장을 컴파일하는 데 매우 일반적인 문제입니다.

이 링크를 사용하는 모든 시스템 에서이 정보를 얻으려면 많은 정보와 읽을 거리가 있습니다.

Visual Studio 2010을 사용하거나 Visual Studio 2008을 사용하지 않도록주의

내가 아는 한 다음은 여전히 ​​사실입니다. 이것은 2010 년 6 월에 python.org에서 제공되는 Python 설치 프로그램에 대해 VS 2010 Express를 사용하여 확장 기능을 구축하려는 것을 언급하는 위의 링크에 게시되었습니다.

이렇게하면 조심하십시오. python.org의 Python 2.6 및 2.7은 Visual Studio 2008 컴파일러로 빌드됩니다. Python과 동일한 CRT (msvcr90.dll)와 연결해야합니다.

Visual Studio 2010 Express가 잘못된 CRT 버전 : msvcr100.dll과 연결합니다.

이렇게하면 Visual Studio 2010 Express를 사용하여 Python도 다시 빌드해야합니다. Windows 용 표준 Python 바이너리 설치 프로그램을 사용할 수 없습니다. Visual Studio 2010 (Express)과 다른 컴파일러로 빌드 된 C / C ++ 확장도 사용할 수 없습니다.

의견 : 이것이 OSX의 모든 심각한 개발 작업으로 인해 Windows를 포기한 이유 중 하나입니다!


2
통찰력에 감사드립니다. 그러나 좋은 하늘, 정말 지루해야합니까 (자신이 아닌 파이썬 신들에 대한 좌절감)? setup.py와 pip를 통해 다른 패키지 (mcrypt)를 설치하려고했는데 모두 오류와 함께 종료됩니다. Windows 사용자는 세계에서 어떻게 패키지를 설치합니까? 모두 VS 2008 Express를 다운로드해야합니까? (나는 VS 2010을 가지고 있는데, 나는 그 일을하지 않는다고 생각합니다).
Coldblackice

1
아니요, 그렇지 않습니다. OSX 또는 Linux에서는 이와 같지 않습니다. Windows에서는 기본 Python 배포판 을 찾을 수있는 경우 사전 컴파일 된 바이너리를 설치할 수 있습니다.이 경우 일반적으로 미국의 수출 제한 으로 인해 암호화 기능을 사용할 수 없습니다 . 그러나 소스에서 직접 컴파일하지 않은 암호화 라이브러리 를 설치 하시겠습니까 ? 그것이 얼마나 안전한지, 어떤 식 으로든 타협되지 않았다는 것을 어떻게 알 수 있습니까?

"의견 : 이것이 OSX의 모든 심각한 개발 작업으로 인해 Windows를 포기한 이유 중 하나입니다." 예 ... 장치에 C 컴파일러가 설치되기 전에 파이썬을 다운로드했습니다 ... 나중에 Visual Studio 2013에서 Visual Basic으로 약간의 작업을 수행했습니다 ... 그 후 MinGW를 사용하여 사용할 수 있습니다 Windows에서 C를 컴파일하는 GCC 요컨대,이 중 일부는 내 잘못 일 수도 있지만 파이썬이 어떤 개발 환경을 사용하려고하는지 전혀 알지 못합니다. 다행스럽게도, pycrypto를 포함하여 수많은 바이너리 패키지가 온라인으로 바이너리로 제공됩니다.
trevorKirkby

15

PyCryptodomepypi에서 사용할 수있는 Windows 휠과 거의 호환되는 PyCrypto 포크입니다 .

간단한 방법으로 설치할 수 있습니다.

pip install pycryptodome

이 웹 사이트에는 Microsoft 컴파일러를 사용하여 소스에서 빌드하는 지침도 포함되어 있습니다.


6

and pycrypto사용하여 컴파일 할 수있었습니다 . 이것은 설치 했거나 설치 한 것으로 가정합니다 .MinGW32MSYSpipeasy_install

내가 한 방법은 다음과 같습니다.

1) MinGW32를 설치하십시오 . 이 설명을 위해에 설치되어 있다고 가정 해 봅시다 C:\MinGW. 권장하는 설치 프로그램을 사용할 때 . MSYS가 설치해야하는 C ++ 컴파일러를 선택하십시오.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) pip install pycrypto이 후 MSYS 터미널 내에서 오류없이 실행해야합니다.


솔루션에 몇 가지 단계가 부족한 것 같습니다. 이 솔루션에 대해 조금 더 설명하고 싶을 수도 있습니다.
Rusty Weber

5

Windows 7의 경우 :

Windows에서 Pycrypto를 설치하려면

명령 프롬프트에서 이것을 시도하십시오.

path = C : \ Python27 \ Scripts (즉, easy_install이있는 경로)를 설정하십시오.

그런 다음 다음을 실행하십시오.

easy_install pycrypto

우분투의 경우 :

이 시도,

" https://pypi.python.org/pypi/pycrypto 에서 Pycrypto를 다운로드 하십시오. " .

그런 다음 터미널을 사용하여 현재 경로를 다운로드 경로로 변경하면 사용자는 루트 여야합니다.

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

그런 다음 터미널을 사용하여 다음을 실행하십시오.

파이썬 setup.py 설치

그것은 나를 위해 일했다. 희망은 모두를 위해 작동합니다 ..


Windows 7에서이 오류를 처음 실행했을 때 "오류 : 설치 스크립트가 오류와 함께 종료되었습니다 : Microsoft Visual C ++ 9.0이 필요합니다 (vcvarsall.bat를 찾을 수 없음). aka.ms/vcpython27 에서 가져 오십시오 "라는 오류가 발생했습니다 . 그것을 설치하고 명령을 다시 실행하면 이번에는 작동했습니다.
arie

5

파이썬 3.4를 찾고있는 사람들에게는 작동하는 설치 프로그램이 있는 git repo 를 찾았습니다 . 다음은 x64x32에 대한 직접 링크입니다.


4

Windows 7 SDK 툴킷을 사용하여 PyCrypto를 빌드 할 수 있습니다. Windows 7 SDK에는 두 가지 버전이 있습니다. 원래 버전 (.Net 3.5 용)에는 VS 2008 명령 줄 컴파일러가 포함되어 있습니다. 32 비트 및 64 비트 컴파일러를 모두 설치할 수 있습니다.

첫 번째 단계는 빠른 산술을 제공하기 위해 mpir 를 컴파일 하는 것입니다. gmpy 라이브러리 에서 사용하는 프로세스를 문서화했습니다 . SDK 컴파일러를 사용하여 mpir를 빌드하는 자세한 지침은 다음을 참조하십시오. sdk_build

DOS 프롬프트에서 SDK 컴파일러를 사용하는 주요 단계는 다음과 같습니다.

1) vcvars32.bat 또는 vcvars64.bat를 적절히 실행하십시오.

2) 프롬프트에서 "set MSSdk = 1"을 실행하십시오.

3) 프롬프트에서 "set DISTUTILS_USE_SDK = 1"을 실행하십시오.

C 코드에 다른 문제가 없다고 가정하면 "python setup.py install"이 성공할 수 있습니다. 그러나 mpir를 활성화하고 mpir 라이브러리를 찾기 위해 몇 가지 PyCrypto 파일을 편집해야했지만 현재 Windows 시스템이 없습니다. 단계를 다시 만들 시간이 있기까지 며칠이 걸릴 것입니다. 그때까지 성공을보고하지 않았다면 PyCrypto 단계를 게시하겠습니다. 이 단계에서는 mpir를 컴파일 할 수 있다고 가정합니다.

이게 도움이 되길 바란다.



3

그래서 MinGW를 설치하고 선택한 컴파일러로 설치 라인에 고정시킵니다. 그러나 "RuntimeError : chmod error"오류가 발생합니다.

이 오류 "RuntimeError: chmod error"는 설치 스크립트가 chmod명령을 찾지 못했기 때문에 발생합니다 .

이 문제를 어떻게 해결할 수 있습니까?

해결책

MSYS 바이너리PATH추가하고 설치 스크립트를 다시 실행하면됩니다 .

(NB : 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. 로 이동 " 파이썬 2.7의 Microsoft Visual C ++ 컴파일러 " (이 내가 함께 단계 아래에 넣어 무슨 짓) 및 "시스템 요구 사항"에 따라 계속.

  2. 설치 setuptools에는 (6.0 이상 자동으로 파이썬 필요 setuptools에이 컴파일러 패키지를 감지) :에 의해 하나 pip install setuptools 또는 다운로드 소스를 "setuptools에이 설치 부트 스트랩" 에서 "ez_python.py"같은 filestystem에이 파일 somwhere 저장 및 사용하여 설치 :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


3

Windows에서 Pycrypcto 설치로 어려움을 겪고 있다면 pip install pycryptodome를 사용하십시오. 그것은 기적처럼 작동하며 많은 구성과 조정을 시도하는 것보다 인생을 훨씬 쉽게 만듭니다.


2

이것은 최적의 솔루션은 아니지만 MS에서 무료 Visual C ++ Express 패키지를 다운로드하여 설치할 수 있습니다. 그러면 PyCrypto 코드를 컴파일하는 데 필요한 C ++ 컴파일러가 제공됩니다.


2

내 대답은 여기에 언급 된 문제와 관련이 없지만 Python 3.4 와 동일한 문제가 있습니다. Crypto.Cipher가 유효한 가져 오기가 아닌 . 그래서 PyCrypto 설치를 시도하고 문제가 발생했습니다.

3.4에서 찾은 몇 가지 연구 후에 pycryptodome 을 사용해야합니다. .

pycharm을 사용하여 pycryptodome을 설치했는데 좋았습니다.

에서 Crypto.Cipher의 수입 AES


1

그래서 MinGW를 설치하고 선택한 컴파일러로 설치 라인에 고정시킵니다. 그러나 "RuntimeError : chmod error"오류가 발생합니다.

MinGW 아래에 msys 패키지를 설치해야합니다

여기에 이미지 설명을 입력하십시오

PATH env 변수에 다음 항목을 추가하십시오.

  • C:\MinGW\bin
  • C:\MinGW\msys\1.0\bin [여기서 chmod 실행 파일을 찾을 수 있습니다]

그런 다음 일반 Windows 명령 프롬프트에서 명령을 실행하십시오.


0

이상한 법적 이유 때문에 바이너리는 일반적인 방식으로 게시되지 않습니다. Voidspace는 일반적으로 가장 좋은 두 번째 소스입니다. 그러나 꽤 오랜 시간이 지난 후 voidspace 관리자는 업데이트되지 않았습니다. [ https://www.dropbox.com/s/n6rckn0k6u4nqke/pycrypto-2.6.1.zip?dl=0] 의 zip을 사용 하십시오.


2
dropbox에서 바이너리를 다운로드하십시오.
Johnth

바이너리를 다운로드하여 VirusTotal로 스캔했습니다. 물론 이는 바이러스가없고 암호화 된 백도어가 없다는 것을 의미합니다. 운 좋게도 PythonAnywhere에서이 프로젝트를 호스팅하기 때문에 개발 용으로 만 사용하고 있습니다.
범위 대 범위

0

1 단계 : 여기 에서 Visual C ++ 2010 Express 설치 .

(Microsoft Visual Studio 2010 서비스 팩 1을 설치하지 마십시오)

2 단계 : 제어판 \ 프로그램 및 기능에서 모든 Microsoft Visual C ++ 2010 재배포 가능 패키지를 제거하십시오. 그렇게하지 않으면 "설치 중 치명적인 오류"오류가 발생하여 설치가 실패합니다.

3 단계 : Visual Studio 2010 (v7.1) 용 Windows SDK 오프라인 버전을 여기 에서 설치 하십시오 . 이것은 64 비트 확장에 필요합니다. Windows에는 Pismo와 같은 ISO를위한 마운팅이 내장되어 있습니다.

4 단계 : Pismo File Mount Audit Package와 함께 ISO 파일을 설치해야합니다. 여기 에서 Pismo를 다운로드 하십시오

5 단계 : 다운로드 한 ISO 파일을 마우스 오른쪽 버튼으로 클릭하고 Pismo로 마운트를 선택합니다. 그런 다음 setup.exe 대신 Setup \ SDKSetup.exe를 설치하십시오.

6a 단계 : 디렉토리를 C : \ Program Files (x86) \ Microsoft Visual Studio version \ VC \로 변경하여 C : \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ bin \ amd64에 vcvars64.bat 파일을 만듭니다. 명령 프롬프트. 명령 프롬프트에서 command를 입력하십시오. cd C:\Program Files (x86)\Microsoft Visual Studio version\VC\r

6b 단계 : x86 플랫폼을 대상으로하는 64 비트 명령 행 빌드에 대해이 명령 프롬프트 창을 구성하려면 명령 프롬프트에 다음을 입력하십시오. 추가 옵션을 vcvarsall x86보려면 여기 를 클릭 하십시오 .

7 단계 : 명령 프롬프트에서 다음을 입력하여 PyCrypto를 설치하십시오. C:\Python3X>pip install -U your_wh_file


0

나는 파이썬으로 Pycharm을 가지고있었습니다.

  1. 이동 pycharm -> file -> setting -> project interpreter

  2. 클릭 +

  3. "pycrypto"패키지 검색 및 설치

참고 : "Python 2.7 용 Microsoft Visual C ++ 컴파일러"가 설치되어 있지 않으면 설치하라는 메시지가 표시됩니다. 설치가 완료되면 위의 단계를 수행하면 제대로 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.