python3.9에서 3.10으로 심볼릭 링크를 변경하면 dnf가 중단됩니다.

python3.9에서 3.10으로 심볼릭 링크를 변경하면 dnf가 중단됩니다.

나는 완전히 혼란스러워요. 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는 아직 출시되지 않았지만 테스트를 거쳤기 때문에 충분히 안정적일 것입니다.)

관련 정보