私は完全に混乱しています。 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はまだリリースされていませんが、テストされているので十分安定しています。)