UbuntuでPythonのバージョンを変更する方法

Ubuntuのをインストールすると、python pathが2.7に設定されています。 Linuxのの Alternativesを利用すれば、pythonのバージョンを簡単に変更して、管理することができます。

Alternativesは基本コマンドのシンボリックリンクを管理するLinuxのプログラムです。 Debianの系列のLinuxの(Ubuntuの)では update-alternativesが提供されます。

update-alternativesの詳細な説明とコマンドは manpagesをご覧ください。

Pythonの実行位置とAlternative説明

which pythonコマンドを使用すると、現在使用してPythonのがどこにインストールされているかどうかがわかります。 ファイル名を見ると、実際の位置がではなく、シンボリックリンクであり、Pythonのは、実際のインストール場所を指すようです。

$ python -V
Python 2.7.14

$ which python
/usr/bin/python

ls -al /usr/bin/pythonにどのファイルを指していることを確認することができます。 このファイルが示すファイルは、 /usr/bin/python2.7です。

$ ls -al /usr/bin/python
lrwxrwxrwx 1 root root 24  418 19:28 /usr/bin/python -> /usr/bin/python2.7

そして、 ls /usr/bin/を見ると、さまざまなバージョンのPythonの実行ファイルがあります。

$ ls /usr/bin/ | grep python
python
python2
python2.7
python3
python3.6
.....

ご存知の通り、PCには複数のバージョンのPythonのがインストールされているAlternativeで、主に使用Pythonのを選択する方法で管理をしています。

update-alternativesは、次のような機能をしてバージョン管理を簡単にすることができます。

  • 現在、/usr/bin/python => /usr/bin/python2.7 を指しています。
  • Pythonの3.6に変更するには、/usr/bin/python => /usr/bin/python3.6 を指すように変更する必要があります。
  • Pythonの3.7に変更するには、/usr/bin/python => /usr/bin/python3.7 を指すように変更する必要があります。

update-alternativesに複数のバージョンのPythonの登録、変更することを試みております。

Update-alternativesでPythonのバージョン登録および変更

まず、Pythonを登録する前に、既に登録されていることを確認する必要があります。

update-alternatives --config pythonオプションのpythonのバージョンを変更するオプションです。 もし次のerrorログのように設定されたことがないとすれば、何も登録されたことがないことを意味します。

$ sudo update-alternatives --config python
update-alternatives: error: no alternatives for python

update-alternatives --install [symbolic link path] python [real path] numberコマンドは、実行可能ファイルを登録するコマンドです。

以下のように入力すると、2.7と3.6のバージョンが、update-alternativesに登録されます。もちろん、Python 2.7と3.6がインストールされている必要があります。 もし設置位置が私と違う面、自分のPCにインストールされてpathに変更する必要があります。

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

そして update-alternatives --config pythonを再入力すると、登録したPythonのバージョンを選択するメニューが出ます。

$ sudo update-alternatives --config python
There are 2 choices for the alternative python (providing /usr/bin/python).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/bin/python3.6   2         auto mode
  1            /usr/bin/python2.7   1         manual mode
  2            /usr/bin/python3.6   2         manual mode

Press <enter> to keep the current choice[*], or type selection number: 2

目的のメニューの番号を入力して、Pythonのバージョンを確認してみてください。 、Pythonのlinkに沿って行ってみればalternativesコマンドで設定した、 /usr/bin/python3.6を指します。

$ python --version
Python 3.6.3

$ ls -al /usr/bin/python
lrwxrwxrwx 1 root root 24  418 19:28 /usr/bin/python -> /etc/alternatives/python

$ ls -al /etc/alternatives/python
lrwxrwxrwx 1 root root 18  92 13:59 /etc/alternatives/python -> /usr/bin/python3.6

まとめ

Alternativesは、Pythonだけでなく、Javaなどのすべてのプログラムのバージョンを管理するために使用することができます。 ここで、Pythonを例にしました。

参考

codechachaCopyright ©2019 codechacha