私は通常、次のように古いバージョン(3.11.2)をインストールしました。簡単パッケージマネージャの異常(3.12)はソースで手動で実行されます。次のようにPythonスクリプトを実行するとき:
./python_script.py
スクリプトは、最新バージョンではなく古いバージョンを使用します。移植性の理由から、スクリプトの先頭#!/usr/bin/env python3
にデフォルトのshebang行を残したいと思います。
以下はサンプルテストスクリプトです。
#!/usr/bin/env python3
import sys
def main():
print(sys.version)
main()
編集:上記の設定では、現時点で最速の解決策は(将来の結果が最善ではない可能性があります。詳細については、以下のコミュニティの回答とコメントを参照してください)python3シンボリックリンクのターゲットを変更することです。/etc/代替到着/usr/local/bin/python3.12私のpython3.12バイナリはどこに保存されていますか?
編集2:2番目のスクリーンショットに示すように、./myscript.py
ディレクトリが環境変数のディレクトリの前にあることを確認し、/usr/local/bin
バイナリ名を 。/usr/bin
PATH
python3.12
/usr/local/bin/
python3
ベストアンサー1
Pythonを使用しているので、Pythonのデフォルトバージョンはenv python3
変数の最初のバージョンによって決まります。したがって、変数を適切に設定して使用するバージョンを選択できます。システムのデフォルトが必要な場合は、別のディレクトリの前に表示するようにして、独自のPythonをビルドしたい場合は、そのバージョンを含むディレクトリが表示されていることを確認してください。前に。python3
PATH
PATH
/usr/bin
python3
python3
/usr/bin
あなたが提案するソリューションは、現在適用可能な最悪のソリューションの1つです。スクリーンショットに表示されている内容を見ると、システムはまだ破損していません。#!/usr/bin/python3
shebangで指定されたシステムPythonスクリプトは、まだ期待されているモジュールを見つけることができます。 Python 3.12を指すように変更すると、/usr/bin/python3
これらのスクリプトは特にシステムにインストールされている3.11モジュールにアクセスできなくなりますpython3-apt
。これは不幸な結果につながる可能性があります。
あなたはそれを自分のスクリプトに割り当てるので#!/usr/bin/env python3
それに頼ることができますがPATH
、私はまだベースのPATH
アプローチがあなたの場合に適していると思います。システムのPythonスクリプトを損なうことなく、最初のスクリプトを指すPATH
ようにどこでも変更できます。python3
いいえPythonを使用してくださいPATH
。)