저는 Python 네트워크 보안에 관한 책을 구입했습니다. 저자는 Python 버전 3.9를 사용합니다. 조만간 dnf로 가보겠습니다. 저는 Fedora Linux 37을 사용하고 있으며 기본 Linux는 Linux 3.11입니다.
가상환경을 설정하고 작성자의 "requirements.txt" 패키지를 설치해보았습니다. 프로세스가 차단되었으며 최신 버전의 Python은 numpy(및 기타 패키지)와 같은 역행 버전을 처리할 수 없는 것으로 보입니다.
그래서 비난받을 만한 일을 했습니다. Python 3.9를 다운로드하고 컴파일하고 설치했습니다. 모든 일이 잘 진행되고 있는 것 같습니다. 그런데 "pip"와 "dnf"가 모두 깨졌음을 발견했습니다.
Pip이 나에게 메시지를 남겼습니다.
$ pip install --upgrade pip는 플랫폼 종속 라이브러리 <exec_prefix>를 찾을 수 없습니다. $PYTHONHOME을 [:<exec_prefix>]로 설정하는 것을 고려하십시오. 역추적(최근 호출): 파일 "/usr/bin/pip", line 7, from pip._internal .cli.main import main ModuleNotFoundError: 'pip._internal'이라는 모듈이 없습니다.
위 예외를 처리하는 과정에서 또 다른 예외가 발생했습니다.
역추적(마지막 가장 최근 호출): 파일 '/usr/bin/pip', 10행, in from pip._internal.main import main ModuleNotFoundError: 'pip._internal'이라는 모듈이 없습니다. 위 예외를 처리하는 동안 또 다른 예외가 발생했습니다. :
역추적(마지막 가장 최근 호출): 파일 '/usr/bin/pip', 17행, from pip._internal import main ModuleNotFoundError: 'pip._internal'이라는 모듈이 없습니다.
위 예외를 처리하는 과정에서 또 다른 예외가 발생했습니다.
역추적(마지막 가장 최근 호출): 파일 '/usr/bin/pip', 20행, from pip import main ImportError: 'pip'에서 'main' 이름을 가져올 수 없습니다(알 수 없는 위치).
그리고 dnf에서:
dnf는 Wireshark를 설치합니다.
역추적(마지막 가장 최근 호출): 파일 '/usr/bin/dnf', 61행, from dnf.cli import main ModuleNotFoundError: 'dnf'라는 모듈이 없습니다.
순진하다고 부르세요. 하지만 가상 환경의 기본 중 하나는 특정 프로그램 내에서 다양한 Python 버전을 사용할 수 있는 능력이라고 생각합니다.
내 dnf에 어떤 문제가 있는지는 모르겠지만 문제를 해결하는 방법을 모르겠습니다.
도움을 주셔서 미리 감사드립니다.
브라이 게이
답변1
글쎄, 나는 모든 심볼릭 링크를 다시 만든 다음pip 및 dnf와 관련된 즉각적인 문제가 수정되었습니다.아마 알고 계시겠지만, Python 버전을 컴파일하면 Fedora의 /usr/bin에 있는 심볼릭 링크가 업데이트되어 이전에는 python3.9, python 및 python3을 컴파일한 후 python과 python3이 python 3.11을 가리키게 됩니다. 파이썬 3.9로.
나는 여전히 가상 환경이 다양한 프로젝트에서 다양한 버전의 Python을 사용할 수 있도록 설계되었다고 생각하지만 이를 구현하는 방법을 모르겠습니다. 예를 들어, 계속해서 Python 3.9를 사용하여 가상 환경을 만들려고 노력할 것입니다(컴파일할 수 있거나 바이너리에서 찾을 수 있는 경우).
하지만 당신이 제공할 수 있는 조언은 여전히 감사하겠습니다.
감사해요.