Pythonバージョンの変更方法について

Python2からPython3にバージョンアップする方法をまとめました。

Pythonバージョンの変更方法について

はじめに

今回は、RaspberryPiのPythonバージョンを変更する機会があったので、記事にまとめてみました。
コマンドのリンク設定についての記事ですので、Pythonコマンド以外のコマンドでも利用できる知識だと思います。

RaspberryPiの情報

今回利用するRaspberryPiの情報は以下の通りです。

pi@raspberrypi:~ $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
デバイスの情報

現在のPythonコマンドの状況

pi@raspberrypi:/usr/bin $ python -V
Python 2.7.16
Pythonコマンドのバージョン

ちなみに、Python3も既に入っています。

pi@raspberrypi:~ $ python3 -V
Python 3.7.3
Python3コマンドのバージョン

リンクの修正

コマンドを実行した時に、どの実行ファイルを利用するかを、設定しなおします。

リンク先の確認

下記のコマンドでPythonコマンドのリンク先を確認します。

cd /usr/bin
ls -l py*
リンク先の確認

確認結果は下記のようになります。
lrwxrwxrwx 1 root root 7 3月 5 2019 python -> python2
PythonのシンボリックがPython2になっている事が確認できます。

    ・
    ・
    ・
lrwxrwxrwx 1 root root       7  3月  5  2019 python -> python2
lrwxrwxrwx 1 root root      14  3月  5  2019 python-config -> python2-config
lrwxrwxrwx 1 root root       9  3月  5  2019 python2 -> python2.7
lrwxrwxrwx 1 root root      16  3月  5  2019 python2-config -> python2.7-config
-rwxr-xr-x 1 root root     154 12月 30  2018 python2-pbr
-rwxr-xr-x 1 root root 2984816  4月  6  2019 python2.7
lrwxrwxrwx 1 root root      36  4月  6  2019 python2.7-config -> arm-linux-gnueabihf-python2.7-config
lrwxrwxrwx 1 root root       9  3月 26  2019 python3 -> python3.7
lrwxrwxrwx 1 root root      16  3月 26  2019 python3-config -> python3.7-config
-rwxr-xr-x 2 root root 4275580  4月  3  2019 python3.7
lrwxrwxrwx 1 root root      36  4月  3  2019 python3.7-config -> arm-linux-gnueabihf-python3.7-config
-rwxr-xr-x 2 root root 4275580  4月  3  2019 python3.7m
lrwxrwxrwx 1 root root      37  4月  3  2019 python3.7m-config -> arm-linux-gnueabihf-python3.7m-config
lrwxrwxrwx 1 root root      10  3月 26  2019 python3m -> python3.7m
lrwxrwxrwx 1 root root      17  3月 26  2019 python3m-config -> python3.7m-config
lrwxrwxrwx 1 root root      10  3月 26  2019 pyvenv -> pyvenv-3.7
-rwxr-xr-x 1 root root     436  4月  3  2019 pyvenv-3.7
    ・
    ・
    ・
確認結果

リンクを削除する

下記のコマンドでリンクを削除します。

sudo unlink python
リンクの削除

リンクが削除されているため、現段階でpythonコマンドを実行しても、何も実行されません。

リンクを再生成する

下記のコマンドでPython3へのシンボリックリンクを作成する。

sudo ln -s python3 python
シンボリックリンクの作成

設定の確認

下記コマンドを実行して設定を確認します。

cd /usr/bin
/usr/bin $ ls -l py*
設定の確認
    ・
    ・
    ・
lrwxrwxrwx 1 root root       7  6月  8 23:36 python -> python3
lrwxrwxrwx 1 root root      14  3月  5  2019 python-config -> python2-config
lrwxrwxrwx 1 root root       9  3月  5  2019 python2 -> python2.7
lrwxrwxrwx 1 root root      16  3月  5  2019 python2-config -> python2.7-config
-rwxr-xr-x 1 root root     154 12月 30  2018 python2-pbr
-rwxr-xr-x 1 root root 2984816  4月  6  2019 python2.7
lrwxrwxrwx 1 root root      36  4月  6  2019 python2.7-config -> arm-linux-gnueabihf-python2.7-config
lrwxrwxrwx 1 root root       9  3月 26  2019 python3 -> python3.7
lrwxrwxrwx 1 root root      16  3月 26  2019 python3-config -> python3.7-config
-rwxr-xr-x 2 root root 4275580  4月  3  2019 python3.7
lrwxrwxrwx 1 root root      36  4月  3  2019 python3.7-config -> arm-linux-gnueabihf-python3.7-config
-rwxr-xr-x 2 root root 4275580  4月  3  2019 python3.7m
lrwxrwxrwx 1 root root      37  4月  3  2019 python3.7m-config -> arm-linux-gnueabihf-python3.7m-config
lrwxrwxrwx 1 root root      10  3月 26  2019 python3m -> python3.7m
lrwxrwxrwx 1 root root      17  3月 26  2019 python3m-config -> python3.7m-config
lrwxrwxrwx 1 root root      10  3月 26  2019 pyvenv -> pyvenv-3.7
-rwxr-xr-x 1 root root     436  4月  3  2019 pyvenv-3.7
    ・
    ・
    ・
確認結果

上記の一覧に、lrwxrwxrwx 1 root root 7 6月 8 23:36 python -> python3と表示されているので、設定されていることがわかります。

ついでにバージョン情報も確認しておきましょう

python -V

pi@raspberrypi:/usr/bin $ python -V
Python 3.7.3
確認結果

まとめ

今回は、Pythonコマンドのリンクを変更し、pythonコマンドで起動するPythonのバージョンを変更しました。
この方法を利用する事で、別のコマンドのバージョンを変更する際にも、活かせると思います。

ターミナル等の知識を身に付けて、linuxと仲良くなれるように頑張っていきたいと思います。