나는 완전히 혼란스러워요. dnf는 Fedora34 및 Python 3.9.7에서 잘 작동합니다.
이를 위해 /usr/bin 디렉토리로 변경했습니다.
아래와 같이 심볼릭 링크를 3.10으로 변경하면 dnf가 중단됩니다.
➜ bin ln -s -f python3.10 python3
➜ bin dnf
Traceback (most recent call last):
File "/usr/bin/dnf", line 57, in <module>
from dnf.cli import main
ModuleNotFoundError: No module named 'dnf'
그런 다음 다시 3.9로 변경했고 dnf가 작동했습니다.
➜ bin ln -s -f python3.9 python3
➜ bin dnf
usage: dnf [options] COMMAND
etc...
누군가 나에게 이 문제를 설명하고 python3 명령이 dnf를 중단하지 않고 3.10을 가리키도록 시스템을 업데이트하는 방법을 설명할 수 있습니까?
답변1
이렇게 하지 마세요: 프로젝트나 개발에서 다른 버전의 Python을 사용하려면 버전 관리 명령을 사용해야 합니다 python3.x
.가상 환경.
DNF와 같은 시스템 도구는 정확한 Python ABI 버전에 따라 다릅니다. Fedora 34에서는 /usr/lib/python3.9/site-packages
최신 Python으로 다시 컴파일하지 않으면 Python 3.10에서 작동하지 않는 Python DNF의 Python 3.9 버전을 설치했습니다 .
$ rpm -q --requires python3-dnf
/usr/bin/python3
...
python(abi) = 3.9
시스템 전반에 걸쳐 Python 3.10을 정말로 원한다면 다음을 수행할 수 있습니다.업그레이드Fedora 35는 기본적으로 Python 3.10과 함께 제공됩니다. (Fedora 35는 아직 출시되지 않았지만 테스트를 거쳤기 때문에 충분히 안정적일 것입니다.)