app.py (Python 3.3, PyCrypto 2.6)를 실행하려고하면 virtualenv가 계속 위에 나열된 오류를 반환합니다. 내 수입 명세서는 from Crypto.Cipher import AES
. 나는 중복을 찾았고 일부가 있다고 말할 수 있지만 해결책을 시도했지만 (대부분은 해결책이 아니지만) 아무것도 작동하지 않았습니다.
아래에서 PyCrypto의 파일이 어떤 것인지 확인할 수 있습니다.
답변
나는 같은 문제가 있었다 (그러나 리눅스에서는). 솔루션은 매우 간단했습니다. 추가 :
libraries:
- name: pycrypto
version: "2.6"
내 app.yaml
파일에. 이것은 과거에 올바르게 작동했기 때문에 이것이 새로운 요구 사항이라고 가정합니다.
답변
.NET을 사용하여 설치할 때 Mac에서 동일한 문제가 발생했습니다 pip
. 그런 다음 다음 pycrypto
과 같이 제거 하고 다시 설치했습니다 easy_install
.
pip uninstall pycrypto
easy_install pycrypto
Luke가 말한대로 : 이러한 명령을 실행하는 데 문제가 있으면 admin (sudo)으로 실행하십시오.
도움이 되었기를 바랍니다!
편집 : winklerr이 위에서 올바르게 언급했듯이 pycrypto는 더 이상 안전하지 않습니다. 대신 pycryptodome을 사용하십시오. 드롭 인 대체품입니다.
답변
나는 Mac에서도이 문제를 만났고, 불행하게도 pip를 통해 pycrypto와 함께 설치된 “crypto”모듈 (그게 무엇인지 확실하지 않음)과 관련이있는 것 같습니다.
수정은 pip로 crypto 및 pycrypto를 모두 제거하는 것 같습니다.
sudo pip uninstall crypto
sudo pip uninstall pycrypto
및 pycrypto 재설치 :
sudo pip install pycrypto
이제 다음과 같이 할 때 예상대로 작동합니다.
from Crypto.Cipher import AES
답변
Mac에서 …이 문제가 발생하면 대신 암호화를 가져올 수 있는지 확인 하시겠습니까?
그렇다면 .. 패키지 이름이 문제 C
대 c
. 이 문제를 해결하려면 .. 스크립트 맨 위에이 줄을 추가하십시오.
import crypto
import sys
sys.modules['Crypto'] = crypto
paramiko를 성공적으로 가져올 수 있어야합니다.
답변
나를 제거 crypto
하고 pycrypto
작동합니다. 그런 다음 다음 만 설치하십시오 pycrypto
.
pip uninstall crypto
pip uninstall pycrypto
pip install pycrypto
답변
경고 : pycrypto
더 이상 사용하지 마십시오 !
당신이 읽을 수있는 것처럼 이 페이지 의 사용법은 pycrypto
입니다 하지 더 이상 안전 :
Pycrypto는 block_templace.c의 ALGnew 함수에서 힙 기반 버퍼 오버플로에 취약합니다. 원격 공격자가 Python 애플리케이션에서 임의의 코드를 실행할 수 있습니다. CVE-2013-7459 번호 가 할당되었습니다 .
Pycrypto는 해당 취약점에 대한 수정 사항을 발표하지 않았으며 2014 년 6 월 20 일 이후로 프로젝트에 대한 커밋이 이루어지지 않았습니다.
솔루션 : Python3 및 pycryptodome
!
TL; DR : pip3 install pycryptodome
crypto
또는의 다른 버전을 pycrypto
먼저 제거해야합니다 .
새로운 가상 환경 설정
가상 환경을 설치하고 모든 것을 설정하려면 다음 명령을 사용하십시오.
# install python3 and pip3
sudo apt update
sudo apt upgrade
sudo apt install python3
sudo apt install python3-pip
# install virtualenv
pip3 install virtualenv
# install and create a virtual environment in your target folder
mkdir target_folder
cd target_folder
python3 -m virtualenv .
# now activate your venv and install pycryptodome
source bin/activate
pip3 install pycryptodome
# check if everything worked:
# start the interactive python console and import the Crypto module
# when there is no import error then it worked
python
>>> from Crypto.Cipher import AES
>>> exit()
# don't forget to deactivate your venv again
deactivate
자세한 내용은 pycryptodome.org를 참조하세요.