簡単な要約

簡単な要約

Python3.7 をインストールしましたが、これをデフォルトの Python にする方法がわかりません。

以下を参照してください:

~/Documents/robosuite$ python3.7
Python 3.7.1 (default, Oct 22 2018, 11:21:55) 
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
KeyboardInterrupt
>>> 

~/Documents/robosuite$ python3
Python 3.6.7 (default, Oct 22 2018, 11:32:17) 
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

コマンドを使用するときにpython3.7が表示されるようにしたいpython3

答え1

簡単な解決策は、.bashrc次の行を編集して追加することです。

alias python3=python3.7

書き込むたびpython3に に置き換えられますpython3.7

update-alternativesまたは、推奨されるコマンドを使用することもできます。例:

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2

したがって、こちらの方python3.7が優先度が高くなりますpython3.6。次に、以下を使用します。

sudo update-alternatives --config python3

満足したらEnterキーを押してください

答え2

詳しくお話ししたいと思います以前の回答提示された 2 つのアプローチは同等ではなく、そのうちの 1 つはシステムを壊す可能性さえあります。問題は、「デフォルトの Python バージョンを変更する」ことによって実行できる 2 つの異なる操作があるということです。

簡単な要約

追加

alias python3=python3.7

.bashrc

するないデフォルトの Python バージョンを変更するには、これを使用しますupdate-alternatives。これにより、システム アプリケーションが壊れます。

詳細情報

Bash エイリアス

1つ目は、対話型シェルの場合、次のように記述するだけで、必要なPythonを簡単に開くことができるということです。

$ python

または

$ python3

これは、次の行を追加することで実現されます。

alias python3=python3.7

に。別のシェルを使用している場合は、これを適切な設定ファイルに追加します。また、何らかの理由で問題が発生した場合、問題のある行を削除してターミナルを再起動する.bashrcだけでよいという利点もあります。.bashrc

update-alternatives

「デフォルトのPythonバージョンを変更する」の2番目の意味は、デフォルトのPythonバージョンを変更することです。全て対話型シェルから起動されていないプログラムも含む。これは、

$ sudo update-alternatives --config python3

しかし、Debian/Ubuntuのクリーンインストールでこれを実行すると、コマンドが返す結果が次のようになることに気づくでしょう。

update-alternatives: error: no alternatives for python3

経由で Python 3 の複数のバージョンがインストールされている場合でもapt、これには非常に良い理由があります。

これの問題は、多くのシステムアプリケーションがPythonを使用しており、正確なディストリビューションによっては、多くがPython 3を使用していることです。コマンドによって呼び出されるバージョンをpython3グローバルに変更すると、これらのアプリケーションはこのバージョンを使用するように強制されます。Python 3の異なるバージョンは大部分が互換性がありますが、リリース間で移動および削除された機能システム アプリケーションがこれらの機能を使用している場合、python3新しいバージョンを起動するように変更すると、アプリケーションが壊れてしまいます。

テスト

VM に Ubuntu 18.04 の新規インストールを作成しました。bash エイリアスを追加しても、すぐに問題は発生しませんでした。

このupdate-alternatives方法を使用すると問題が発生しましたapt。具体的には、

ModuleNotFoundError: No module named 'apt_pkg'

update-alternativesメソッドを実行した場合のシステムの修正

update-alternativesを実行して壊れた場合でもapt、システムを修復することは可能です。私のテストでは、ターミナルはまだ開くことができました。以下を実行することでデフォルトのPythonに戻すことができます。

$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.X 1000

ここで、3.XはシステムのオリジナルのPython 3バージョンで、1000はそれが最上位にあることを確認するための高優先度です。次に、

$ sudo update-alternatives --config python3

元のシステム Python が選択されていることを確認します。システムを再起動すると、正常に戻ります。

答え3

$ sudo su
$ update-alternatives --install /usr/bin/python python /usr/bin/python3 1

... がすでにpython3.7インストールされている場合

答え4

update-alternativesコマンドがないマシンの場合は、次のような簡単な解決策があります。

sudo ln -sf `which python3.7` `which python3`

通常(少なくとも私が見たすべてのケースでは)、python3/python2/pythonは特定のバージョンのpython実行ファイルへのシンボリックリンクにすぎません。このシンボリックリンクを変更すると、「デフォルトのpython」が変更されます。

関連情報