pycryptodom 설치 문제

pycryptodom 설치 문제

Wi-Fi 화이트리스트를 제거하고 수정된 BIOS를 다시 eeprom으로 플래시하기 위해 Thinkpad의 BIOS를 수정했습니다. 이렇게 하려면 다음과 같은 도구를 사용해야 합니다.Thinkpad-uefi-플래그부팅할 수 있도록 이미지에 서명합니다. Thinkpad-uefi-sign에는 pycryptodome이 필요합니다. 나는 그것을 사용하여 설치했다.

apt install python3-pycryptodome

하지만 여전히 작동하지 않고 오류가 발생합니다.

ModuleNotFoundError: No module named 'Crypto'

thinkpad-uefi-sign/verify.py를 실행하면. 저는 최신 패키지와 Python 3.11.5가 포함된 Debian Testing Trixie를 사용하고 있습니다.

내가 시도한 또 다른 것은 다음을 사용하여 설치하는 것입니다.

pip install pycryptodome

그러나 이는 패키지를 손상시킬 수 있다는 경고를 제공하고 apt install python-xyz를 사용하여 패키지를 설치할 수 있습니다. 그런 다음 python3-full을 설치하고 python3 -m venv /path/to/venv를 사용하여 venv(가상 환경)를 설정했습니다. 다음 명령을 사용하여 venv에 pycryptodom을 설치했습니다.

/path/to/venv/bin/pip3 install pycryptodome

그런 다음 thinkpad-uefi-sign/verify.py 스크립트를 실행합니다.

/path/to/venv/bin/python3 thinkpad-uefi-sign/verify.py Bios_Modded.bin

여전히 같은 오류가 발생합니다. 그 후 venv에서 pip3을 사용하여 pycryptodomex, Crypto 및 pycrypto를 설치하려고 시도했지만 프로그램을 실행할 때 여전히 오류가 발생했습니다. 나는 또한 다음 답변을 시도해 보았습니다.이 다른 기사, 그러나 별로 도움이 되지 않았습니다. 저도 MacBook을 사용해 보았는데 어떤 이유에서인지 작동하는 것 같으니 이는 포장 관련 문제일 수 있습니다. 마무리하는 것이 도움이 될 수 있습니다. 여기에 명령과 전체 출력이 있습니다.

$ ./python3_venv_with_pycryptodome/bin/python3 thinkpad-uefi-sign/verify.py Bios_Modded.bin
Traceback (most recent call last):
  File "/home/witherslayer/Sowa/ThkpX1CG2_UEFIs/workflow/thinkpad-uefi-sign/verify.py", line 19, in <module>
    from Crypto.PublicKey import RSA
ModuleNotFoundError: No module named 'Crypto'

답변1

Panki의 의견에 따르면 Python venv를 활성화한 후 서명된 소프트웨어를 실행할 수 있었습니다. 다음 명령을 사용하여 bash에 대해 이 작업을 수행합니다.

$ source <venv>/bin/activate

~에서파이썬 문서.

답변2

이 라이브러리에는 3.4.1부터 다음과 같은 기능이 있습니다.

3.4.1(2016년 2월 21일)

새로운 기능

  • Cryptodome(대신 ) 패키지 아래에 라이브러리를 설치하는 옵션이 추가되었습니다 Crypto.

실제로 소스에 명시된 대로 이전 PyCrypto 라이브러리를 설치하거나 사용하는 경우 이전 PyCrypto 라이브러리와의 충돌을 피해야 합니다.

누구나:

기존 PyCrypto 라이브러리를 거의 즉시 대체합니다.

You install it with::

pip install pycryptodome
In this case, all modules are installed under the `Crypto` package. You can test everything is right with::
  
pip install pycryptodome-test-vectors
python -m Crypto.SelfTest

PyCrypto와 PyCryptodom을 모두 갖는 것을 피해야 합니다.서로 간섭하므로 두 가지를 동시에 설치하십시오. 따라서 전체 애플리케이션이 virtualenv.

또는:

이전 PyCrypto와 독립된 라이브러리입니다.

다음 명령을 사용하여 설치할 수 있습니다.

pip install pycryptodomex
You can test everything is right with::

pip install pycryptodome-test-vectors
python -m Cryptodome.SelfTest

이 경우,Cryptodome모든 모듈은 이 패키지 아래에 설치됩니다 . 기존 PyCrypto와 PyCryptodom은 공존할 수 있습니다.

aa 배포자로서 Debian은 잠재적인 충돌을 피하기 위해 이 옵션을 선택했습니다(이전 PyCrypto를 전혀 제공하지 않더라도):

debian/rules:

touch .separate_namespace

setup.py:

use_separate_namespace = os.path.isfile(".separate_namespace")
other_project = "pycryptodomex"
other_root = "Cryptodome"
if use_separate_namespace:
    project_name, other_project = other_project, project_name
    package_root, other_root = other_root, package_root 

마지막 Crypto으로 (venv 없이) 데비안 패키징 라이브러리를 사용할 수도 있습니다.Cryptodomesign.py그리고verify.py.

관련 정보