マイコンピュータに2つのバージョンのPython3(3.11.2や3.12など)がインストールされている場合、Pythonスクリプトを実行するときに使用するデフォルトバージョンをどのように設定しますか?

マイコンピュータに2つのバージョンのPython3(3.11.2や3.12など)がインストールされている場合、Pythonスクリプトを実行するときに使用するデフォルトバージョンをどのように設定しますか?

私は通常、次のように古いバージョン(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/binPATHpython3.12/usr/local/bin/python3

ベストアンサー1

Pythonを使用しているので、Pythonのデフォルトバージョンはenv python3変数の最初のバージョンによって決まります。したがって、変数を適切に設定して使用するバージョンを選択できます。システムのデフォルトが必要な場合は、別のディレクトリの前に表示するようにして、独自のPythonをビルドしたい場合は、そのバージョンを含むディレクトリが表示されていることを確認してください。前に。python3PATHPATH/usr/binpython3python3/usr/bin

あなたが提案するソリューションは、現在適用可能な最悪のソリューションの1つです。スクリーンショットに表示されている内容を見ると、システムはまだ破損していません。#!/usr/bin/python3shebangで指定されたシステムPythonスクリプトは、まだ期待されているモジュールを見つけることができます。 Python 3.12を指すように変更すると、/usr/bin/python3これらのスクリプトは特にシステムにインストールされている3.11モジュールにアクセスできなくなりますpython3-apt。これは不幸な結果につながる可能性があります。

あなたはそれを自分のスクリプトに割り当てるので#!/usr/bin/env python3それに頼ることができますがPATH、私はまだベースのPATHアプローチがあなたの場合に適していると思います。システムのPythonスクリプトを損なうことなく、最初のスクリプトを指すPATHようにどこでも変更できます。python3いいえPythonを使用してくださいPATH。)

おすすめ記事