Python

[Python] 파이썬 암호화 pycrypto 설치시 오류 처리 및 대체 방안

대표적인 대칭키 알고리즘으로 DES, AES가 있으며, 이 알고리즘에 대해서 알아보기 위해 테스트를 진행해보려고 하였으나 설치과정에서 부터 오류가 발생하기 시작했습니다.

pycrypto 설치하기

명령프롬프트창(cmd)을 열고 pip install pycrypto명령어를 실행하여 설치합니다.

안타깝게도 저는 pycrypto 설치 오류가 발생했어요.

C:>pip install pycrypto
Collecting pycrypto
  Downloading pycrypto-2.6.1.tar.gz (446 kB)
     |████████████████████████████████| 446 kB 1.7 MB/s
Using legacy 'setup.py install' for pycrypto, since package 'wheel' is not installed.
Installing collected packages: pycrypto
    Running setup.py install for pycrypto ... error
    ERROR: Command errored out with exit status 1:
     command: 'c:usersilikeappdatalocalprogramspythonpython39python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:Usersili
keAppDataLocalTemppip-install-1a2jfm1mpycrypto_ea3b73191cf74a5a9c9b63935f5d3d7dsetup.py'"'"'; __file__='"'"'C:UsersilikeAppDataLocalT
emppip-install-1a2jfm1mpycrypto_ea3b73191cf74a5a9c9b63935f5d3d7dsetup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().repla
ce('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:UsersilikeAppDataLocalTemppip-record-bm
4nxnqzinstall-record.txt' --single-version-externally-managed --compile --install-headers 'c:usersilikeappdatalocalprogramspythonpython39Includep
ycrypto'
         cwd: C:UsersilikeAppDataLocalTemppip-install-1a2jfm1mpycrypto_ea3b73191cf74a5a9c9b63935f5d3d7d
    Complete output (153 lines):
    running install
    running build
    running build_py
    creating build
    creating buildlib.win-amd64-3.9
    creating buildlib.win-amd64-3.9Crypto
    copying libCryptopct_warnings.py -> buildlib.win-amd64-3.9Crypto
    copying libCrypto__init__.py -> buildlib.win-amd64-3.9Crypto
    creating buildlib.win-amd64-3.9CryptoHash
    copying libCryptoHashhashalgo.py -> buildlib.win-amd64-3.9CryptoHash
    copying libCryptoHashHMAC.py -> buildlib.win-amd64-3.9CryptoHash
    copying libCryptoHashMD2.py -> buildlib.win-amd64-3.9CryptoHash
    copying libCryptoHashMD4.py -> buildlib.win-amd64-3.9CryptoHash
    copying libCryptoHashMD5.py -> buildlib.win-amd64-3.9CryptoHash
    copying libCryptoHashRIPEMD.py -> buildlib.win-amd64-3.9CryptoHash
    copying libCryptoHashSHA.py -> buildlib.win-amd64-3.9CryptoHash
    copying libCryptoHashSHA224.py -> buildlib.win-amd64-3.9CryptoHash
    copying libCryptoHashSHA256.py -> buildlib.win-amd64-3.9CryptoHash
    copying libCryptoHashSHA384.py -> buildlib.win-amd64-3.9CryptoHash
    copying libCryptoHashSHA512.py -> buildlib.win-amd64-3.9CryptoHash
    copying libCryptoHash__init__.py -> buildlib.win-amd64-3.9CryptoHash
    creating buildlib.win-amd64-3.9CryptoCipher
    copying libCryptoCipherAES.py -> buildlib.win-amd64-3.9CryptoCipher
    copying libCryptoCipherARC2.py -> buildlib.win-amd64-3.9CryptoCipher
    copying libCryptoCipherARC4.py -> buildlib.win-amd64-3.9CryptoCipher
    copying libCryptoCipherblockalgo.py -> buildlib.win-amd64-3.9CryptoCipher
    copying libCryptoCipherBlowfish.py -> buildlib.win-amd64-3.9CryptoCipher
    copying libCryptoCipherCAST.py -> buildlib.win-amd64-3.9CryptoCipher
    copying libCryptoCipherDES.py -> buildlib.win-amd64-3.9CryptoCipher
    copying libCryptoCipherDES3.py -> buildlib.win-amd64-3.9CryptoCipher
    copying libCryptoCipherPKCS1_OAEP.py -> buildlib.win-amd64-3.9CryptoCipher
    copying libCryptoCipherPKCS1_v1_5.py -> buildlib.win-amd64-3.9CryptoCipher
    copying libCryptoCipherXOR.py -> buildlib.win-amd64-3.9CryptoCipher
    copying libCryptoCipher__init__.py -> buildlib.win-amd64-3.9CryptoCipher
    creating buildlib.win-amd64-3.9CryptoUtil
    copying libCryptoUtilasn1.py -> buildlib.win-amd64-3.9CryptoUtil
    copying libCryptoUtilCounter.py -> buildlib.win-amd64-3.9CryptoUtil
    copying libCryptoUtilnumber.py -> buildlib.win-amd64-3.9CryptoUtil
    copying libCryptoUtilpy3compat.py -> buildlib.win-amd64-3.9CryptoUtil
    copying libCryptoUtilrandpool.py -> buildlib.win-amd64-3.9CryptoUtil
    copying libCryptoUtilRFC1751.py -> buildlib.win-amd64-3.9CryptoUtil
    copying libCryptoUtilwinrandom.py -> buildlib.win-amd64-3.9CryptoUtil
    copying libCryptoUtil_number_new.py -> buildlib.win-amd64-3.9CryptoUtil
    copying libCryptoUtil__init__.py -> buildlib.win-amd64-3.9CryptoUtil
    creating buildlib.win-amd64-3.9CryptoRandom
    copying libCryptoRandomrandom.py -> buildlib.win-amd64-3.9CryptoRandom
    copying libCryptoRandom_UserFriendlyRNG.py -> buildlib.win-amd64-3.9CryptoRandom
    copying libCryptoRandom__init__.py -> buildlib.win-amd64-3.9CryptoRandom
    creating buildlib.win-amd64-3.9CryptoRandomFortuna
    copying libCryptoRandomFortunaFortunaAccumulator.py -> buildlib.win-amd64-3.9CryptoRandomFortuna
    copying libCryptoRandomFortunaFortunaGenerator.py -> buildlib.win-amd64-3.9CryptoRandomFortuna
    copying libCryptoRandomFortunaSHAd256.py -> buildlib.win-amd64-3.9CryptoRandomFortuna
    copying libCryptoRandomFortuna__init__.py -> buildlib.win-amd64-3.9CryptoRandomFortuna
    creating buildlib.win-amd64-3.9CryptoRandomOSRNG
    copying libCryptoRandomOSRNGfallback.py -> buildlib.win-amd64-3.9CryptoRandomOSRNG
    copying libCryptoRandomOSRNGnt.py -> buildlib.win-amd64-3.9CryptoRandomOSRNG
    copying libCryptoRandomOSRNGposix.py -> buildlib.win-amd64-3.9CryptoRandomOSRNG
    copying libCryptoRandomOSRNGrng_base.py -> buildlib.win-amd64-3.9CryptoRandomOSRNG
    copying libCryptoRandomOSRNG__init__.py -> buildlib.win-amd64-3.9CryptoRandomOSRNG
    creating buildlib.win-amd64-3.9CryptoSelfTest
    copying libCryptoSelfTestst_common.py -> buildlib.win-amd64-3.9CryptoSelfTest
    copying libCryptoSelfTest__init__.py -> buildlib.win-amd64-3.9CryptoSelfTest
    creating buildlib.win-amd64-3.9CryptoSelfTestCipher
    copying libCryptoSelfTestCiphercommon.py -> buildlib.win-amd64-3.9CryptoSelfTestCipher
    copying libCryptoSelfTestCiphertest_AES.py -> buildlib.win-amd64-3.9CryptoSelfTestCipher
    copying libCryptoSelfTestCiphertest_ARC2.py -> buildlib.win-amd64-3.9CryptoSelfTestCipher
    copying libCryptoSelfTestCiphertest_ARC4.py -> buildlib.win-amd64-3.9CryptoSelfTestCipher
    copying libCryptoSelfTestCiphertest_Blowfish.py -> buildlib.win-amd64-3.9CryptoSelfTestCipher
    copying libCryptoSelfTestCiphertest_CAST.py -> buildlib.win-amd64-3.9CryptoSelfTestCipher
    copying libCryptoSelfTestCiphertest_DES.py -> buildlib.win-amd64-3.9CryptoSelfTestCipher
    copying libCryptoSelfTestCiphertest_DES3.py -> buildlib.win-amd64-3.9CryptoSelfTestCipher
    copying libCryptoSelfTestCiphertest_pkcs1_15.py -> buildlib.win-amd64-3.9CryptoSelfTestCipher
    copying libCryptoSelfTestCiphertest_pkcs1_oaep.py -> buildlib.win-amd64-3.9CryptoSelfTestCipher
    copying libCryptoSelfTestCiphertest_XOR.py -> buildlib.win-amd64-3.9CryptoSelfTestCipher
    copying libCryptoSelfTestCipher__init__.py -> buildlib.win-amd64-3.9CryptoSelfTestCipher
    creating buildlib.win-amd64-3.9CryptoSelfTestHash
    copying libCryptoSelfTestHashcommon.py -> buildlib.win-amd64-3.9CryptoSelfTestHash
    copying libCryptoSelfTestHashtest_HMAC.py -> buildlib.win-amd64-3.9CryptoSelfTestHash
    copying libCryptoSelfTestHashtest_MD2.py -> buildlib.win-amd64-3.9CryptoSelfTestHash
    copying libCryptoSelfTestHashtest_MD4.py -> buildlib.win-amd64-3.9CryptoSelfTestHash
    copying libCryptoSelfTestHashtest_MD5.py -> buildlib.win-amd64-3.9CryptoSelfTestHash
    copying libCryptoSelfTestHashtest_RIPEMD.py -> buildlib.win-amd64-3.9CryptoSelfTestHash
    copying libCryptoSelfTestHashtest_SHA.py -> buildlib.win-amd64-3.9CryptoSelfTestHash
    copying libCryptoSelfTestHashtest_SHA224.py -> buildlib.win-amd64-3.9CryptoSelfTestHash
    copying libCryptoSelfTestHashtest_SHA256.py -> buildlib.win-amd64-3.9CryptoSelfTestHash
    copying libCryptoSelfTestHashtest_SHA384.py -> buildlib.win-amd64-3.9CryptoSelfTestHash
    copying libCryptoSelfTestHashtest_SHA512.py -> buildlib.win-amd64-3.9CryptoSelfTestHash
    copying libCryptoSelfTestHash__init__.py -> buildlib.win-amd64-3.9CryptoSelfTestHash
    creating buildlib.win-amd64-3.9CryptoSelfTestProtocol
    copying libCryptoSelfTestProtocoltest_AllOrNothing.py -> buildlib.win-amd64-3.9CryptoSelfTestProtocol
    copying libCryptoSelfTestProtocoltest_chaffing.py -> buildlib.win-amd64-3.9CryptoSelfTestProtocol
    copying libCryptoSelfTestProtocoltest_KDF.py -> buildlib.win-amd64-3.9CryptoSelfTestProtocol
    copying libCryptoSelfTestProtocoltest_rfc1751.py -> buildlib.win-amd64-3.9CryptoSelfTestProtocol
    copying libCryptoSelfTestProtocol__init__.py -> buildlib.win-amd64-3.9CryptoSelfTestProtocol
    creating buildlib.win-amd64-3.9CryptoSelfTestPublicKey
    copying libCryptoSelfTestPublicKeytest_DSA.py -> buildlib.win-amd64-3.9CryptoSelfTestPublicKey
    copying libCryptoSelfTestPublicKeytest_ElGamal.py -> buildlib.win-amd64-3.9CryptoSelfTestPublicKey
    copying libCryptoSelfTestPublicKeytest_importKey.py -> buildlib.win-amd64-3.9CryptoSelfTestPublicKey
    copying libCryptoSelfTestPublicKeytest_RSA.py -> buildlib.win-amd64-3.9CryptoSelfTestPublicKey
    copying libCryptoSelfTestPublicKey__init__.py -> buildlib.win-amd64-3.9CryptoSelfTestPublicKey
    creating buildlib.win-amd64-3.9CryptoSelfTestRandom
    copying libCryptoSelfTestRandomtest_random.py -> buildlib.win-amd64-3.9CryptoSelfTestRandom
    copying libCryptoSelfTestRandomtest_rpoolcompat.py -> buildlib.win-amd64-3.9CryptoSelfTestRandom
    copying libCryptoSelfTestRandomtest__UserFriendlyRNG.py -> buildlib.win-amd64-3.9CryptoSelfTestRandom
    copying libCryptoSelfTestRandom__init__.py -> buildlib.win-amd64-3.9CryptoSelfTestRandom
    creating buildlib.win-amd64-3.9CryptoSelfTestRandomFortuna
    copying libCryptoSelfTestRandomFortunatest_FortunaAccumulator.py -> buildlib.win-amd64-3.9CryptoSelfTestRandomFortuna
    copying libCryptoSelfTestRandomFortunatest_FortunaGenerator.py -> buildlib.win-amd64-3.9CryptoSelfTestRandomFortuna
    copying libCryptoSelfTestRandomFortunatest_SHAd256.py -> buildlib.win-amd64-3.9CryptoSelfTestRandomFortuna
    copying libCryptoSelfTestRandomFortuna__init__.py -> buildlib.win-amd64-3.9CryptoSelfTestRandomFortuna
    creating buildlib.win-amd64-3.9CryptoSelfTestRandomOSRNG
    copying libCryptoSelfTestRandomOSRNGtest_fallback.py -> buildlib.win-amd64-3.9CryptoSelfTestRandomOSRNG
    copying libCryptoSelfTestRandomOSRNGtest_generic.py -> buildlib.win-amd64-3.9CryptoSelfTestRandomOSRNG
    copying libCryptoSelfTestRandomOSRNGtest_nt.py -> buildlib.win-amd64-3.9CryptoSelfTestRandomOSRNG
    copying libCryptoSelfTestRandomOSRNGtest_posix.py -> buildlib.win-amd64-3.9CryptoSelfTestRandomOSRNG
    copying libCryptoSelfTestRandomOSRNGtest_winrandom.py -> buildlib.win-amd64-3.9CryptoSelfTestRandomOSRNG
    copying libCryptoSelfTestRandomOSRNG__init__.py -> buildlib.win-amd64-3.9CryptoSelfTestRandomOSRNG
    creating buildlib.win-amd64-3.9CryptoSelfTestUtil
    copying libCryptoSelfTestUtiltest_asn1.py -> buildlib.win-amd64-3.9CryptoSelfTestUtil
    copying libCryptoSelfTestUtiltest_Counter.py -> buildlib.win-amd64-3.9CryptoSelfTestUtil
    copying libCryptoSelfTestUtiltest_number.py -> buildlib.win-amd64-3.9CryptoSelfTestUtil
    copying libCryptoSelfTestUtiltest_winrandom.py -> buildlib.win-amd64-3.9CryptoSelfTestUtil
    copying libCryptoSelfTestUtil__init__.py -> buildlib.win-amd64-3.9CryptoSelfTestUtil
    creating buildlib.win-amd64-3.9CryptoSelfTestSignature
    copying libCryptoSelfTestSignaturetest_pkcs1_15.py -> buildlib.win-amd64-3.9CryptoSelfTestSignature
    copying libCryptoSelfTestSignaturetest_pkcs1_pss.py -> buildlib.win-amd64-3.9CryptoSelfTestSignature
    copying libCryptoSelfTestSignature__init__.py -> buildlib.win-amd64-3.9CryptoSelfTestSignature
    creating buildlib.win-amd64-3.9CryptoProtocol
    copying libCryptoProtocolAllOrNothing.py -> buildlib.win-amd64-3.9CryptoProtocol
    copying libCryptoProtocolChaffing.py -> buildlib.win-amd64-3.9CryptoProtocol
    copying libCryptoProtocolKDF.py -> buildlib.win-amd64-3.9CryptoProtocol
    copying libCryptoProtocol__init__.py -> buildlib.win-amd64-3.9CryptoProtocol
    creating buildlib.win-amd64-3.9CryptoPublicKey
    copying libCryptoPublicKeyDSA.py -> buildlib.win-amd64-3.9CryptoPublicKey
    copying libCryptoPublicKeyElGamal.py -> buildlib.win-amd64-3.9CryptoPublicKey
    copying libCryptoPublicKeypubkey.py -> buildlib.win-amd64-3.9CryptoPublicKey
    copying libCryptoPublicKeyRSA.py -> buildlib.win-amd64-3.9CryptoPublicKey
    copying libCryptoPublicKey_DSA.py -> buildlib.win-amd64-3.9CryptoPublicKey
    copying libCryptoPublicKey_RSA.py -> buildlib.win-amd64-3.9CryptoPublicKey
    copying libCryptoPublicKey_slowmath.py -> buildlib.win-amd64-3.9CryptoPublicKey
    copying libCryptoPublicKey__init__.py -> buildlib.win-amd64-3.9CryptoPublicKey
    creating buildlib.win-amd64-3.9CryptoSignature
    copying libCryptoSignaturePKCS1_PSS.py -> buildlib.win-amd64-3.9CryptoSignature
    copying libCryptoSignaturePKCS1_v1_5.py -> buildlib.win-amd64-3.9CryptoSignature
    copying libCryptoSignature__init__.py -> buildlib.win-amd64-3.9CryptoSignature
    Skipping optional fixer: buffer
    Skipping optional fixer: idioms
    Skipping optional fixer: set_literal
    Skipping optional fixer: ws_comma
    running build_ext
    warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath.
    building 'Crypto.Random.OSRNG.winrandom' extension
    error: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/
    ----------------------------------------
ERROR: Command errored out with exit status 1: 'c:usersilikeappdatalocalprogramspythonpython39python.exe' -u -c 'import sys, setuptools, tokenize;
sys.argv[0] = '"'"'C:UsersilikeAppDataLocalTemppip-install-1a2jfm1mpycrypto_ea3b73191cf74a5a9c9b63935f5d3d7dsetup.py'"'"'; __file__='"'"'C:
UsersilikeAppDataLocalTemppip-install-1a2jfm1mpycrypto_ea3b73191cf74a5a9c9b63935f5d3d7dsetup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', op
en)(__file__);code=f.read().replace('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:Usersilike
AppDataLocalTemppip-record-bm4nxnqzinstall-record.txt' --single-version-externally-managed --compile --install-headers 'c:usersilikeappdatalocalp
rogramspythonpython39Includepycrypto' Check the logs for full command output.
WARNING: You are using pip version 20.3.1; however, version 20.3.3 is available.
You should consider upgrading via the 'c:usersilikeappdatalocalprogramspythonpython39python.exe -m pip install --upgrade pip' command.

 

우선 WARNING 을 먼저 처리했어요. pip 버전을 먼저 업데이트 하였습니다.

C:>python -m pip install --upgrade pip
Requirement already satisfied: pip in c:usersilikeappdatalocalprogramspythonpython39libsite-packages (20.3.1)
Collecting pip
  Downloading pip-20.3.3-py2.py3-none-any.whl (1.5 MB)
     |████████████████████████████████| 1.5 MB 6.4 MB/s
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 20.3.1
    Uninstalling pip-20.3.1:
      Successfully uninstalled pip-20.3.1
Successfully installed pip-20.3.3

C:>


 

다음으로 Using legacy ‘setup.py install’ for pycrypto, since package ‘wheel’ is not installed.

C:>pip install whell
ERROR: Could not find a version that satisfies the requirement whell
ERROR: No matching distribution found for whell

C:>

 

다음 작업으로 pip install –upgrade setuptools 명령어를 실행하여 업그레이드를 하였습니다.

C:Usersilike>pip install --upgrade setuptools
Requirement already satisfied: setuptools in c:usersilikeappdatalocalprogramspythonpython39libsite-packages (49.2.1)
Collecting setuptools
  Downloading setuptools-51.1.1-py3-none-any.whl (2.0 MB)
     |████████████████████████████████| 2.0 MB 6.8 MB/s
Installing collected packages: setuptools
  Attempting uninstall: setuptools
    Found existing installation: setuptools 49.2.1
    Uninstalling setuptools-49.2.1:
      Successfully uninstalled setuptools-49.2.1
Successfully installed setuptools-51.1.1

C:Usersilike>

 

그런 다음 오류의 주범인 비주얼 C++ 버전 14를 설치를 설치하기로 하고 오류내용에 포함된 링크를 따라가면 가장 최신의 버전만 노출됩니다.

Crypto.Random.OSRNG.winrandom’ extension error: Microsoft Visual C++ 14.0 is required. Get it with “Build Tools for Visual Studio”:visualstudio.microsoft.com/downloads/

 

검색을 좀 더 해보니 C++ 14.0 버전은 비주얼 스튜디오 2015 버전에 포함되어 설치가 가능한 모양입니다.

Microsoft Visual C++ 14.0 standalone: Visual C++ Build Tools 2015 (x86, x64, ARM)

This is a standalone version of Visual C++ 14.0 compiler, you don’t need to install Visual Studio 2015.

  • Install Microsoft Visual C++ Build Tools 2015. Check Windows 8.1 SDK and Windows 10 SDK options.

  • The setuptools Python package version must be at least 24.0.

Visual C++ Build Tools 2015 was upgraded by Microsoft to Build Tools for Visual Studio 2017. See the previous paragraph to install it.

Microsoft Visual C++ 14.0 with Visual Studio 2015 (x86, x64, ARM)

Visual Studio 2015 contains Visual C++ 14.0 compiler. Distutils will automatically detect the compiler and use it.

Visual Studio 2015 was upgraded by Microsoft to Visual Studio 2017. See the previous paragraph to install it.

 

Build Tools 2015를 검색 끝에 어렵게 찾았습니다. 아래 경로에서 다운 받은 후 BuildTools_Full.exe를 클릭하여 설치합니다.

www.microsoft.com/en-us/download/details.aspx?id=48159


 

설치를 완료 후 pip install pycrypto명령어를 실행하여 설치합니다. 그러나 저는 여전히 오류가 발생합니다.

 

 

위와 같은 방법으로 시도했으나 해결이 안되신 분들은 아래 내용을 참고하세요.

다른 방법으로 시도하였으나 역시 설치 오류가 재현됩니다.

C:Usersilike>pip uninstall pycrypto
WARNING: Skipping pycrypto as it is not installed.

C:Usersilike>easy_install pycrypto
WARNING: The easy_install command is deprecated and will be removed in a future version.
Searching for pycrypto
Reading https://pypi.org/simple/pycrypto/
Downloading https://files.pythonhosted.org/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz#sha256=f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c
Best match: pycrypto 2.6.1
Processing pycrypto-2.6.1.tar.gz
Writing C:UsersilikeAppDataLocalTempeasy_install-0q3aj0idpycrypto-2.6.1setup.cfg
Running pycrypto-2.6.1setup.py -q bdist_egg --dist-dir C:UsersilikeAppDataLocalTempeasy_install-0q3aj0idpycrypto-2.6.1egg-dist-tmp-42willro
warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath.
error: Setup script exited with error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/

C:Usersilike>

모듈을 클릭하면 찾아 들어가는데 컴파일 할때 모듈을 못 찾고 있네요. ModuleNotFoundError: No module named ‘Crypto’ 오류가 발생하네요.

 

검색에 검색을 하게 되었고, crypto 와 pycrypto를 사용하지 말라고 합니다. 취약점이 있는데 업데이트를 해주지 않고 있다는 것 같아요. 그러면서 파이썬3에서는 pycryptodome를 사용하라고 합니다.

 

pip install pycryptodome를 실행하여 설치하였습니다. 정상적으로 잘 설치 되었네요.

C:Usersilike> pip install pycryptodome
Collecting pycryptodome
  Downloading pycryptodome-3.9.9-cp39-cp39-win_amd64.whl (14.1 MB)
     |████████████████████████████████| 14.1 MB 6.4 MB/s
Installing collected packages: pycryptodome
Successfully installed pycryptodome-3.9.9

 

[REFERENCE]

wiki.python.org/moin/WindowsCompilers

stackoverflow.com/questions/51824628/modulenotfounderror-no-module-named-crypto-error/51824838

stackoverflow.com/questions/19623267/importerror-no-module-named-crypto-cipher

pycryptodome.readthedocs.io/en/latest/
pypi.org/project/pycryptodome/

 

 

Leave a Reply

error: Content is protected !!