デフォルトのPythonをPython3へ
Ubuntu 16.04では、デフォルトのPythonをPython2からPython3へ(今度こそ)移行する計画が立てられています。Python3への移行は以前のUbuntuより検討されていた計画ですが、影響範囲が広くなかなか移行が進んでいない状況でした。
現状Python3をデフォルトとすることで影響を受けるパッケージ(ソフトウェア)は、以下にまとめられています。
上記でリストアップされているパッケージは、Ubuntu Desktopで標準的にインストールされるパッケージ群です。
Ubuntuのインストールで使用されるパッケージなので、最低限これらのパッケージをPython3へ移行する必要があります。
従って、上記でリストアップされているパッケージは、Ubuntuのリポジトリーで提供される全てのパッケージが対象ではありません。
ユーザーがUbuntuインストール後に個別にインストールするソフトウェアの中で、デフォルトのPythonがPython2であることを期待して動作するソフトウェアは、別途対応が必要になります。
Python2がデフォルトでインストールされなくなる
Python3への移行と共に、Python2がデフォルトでインストールされなくなります。必要なら別途Python2をインストールすることができますが、デフォルトのPythonはPython3のままとなります。
Ubuntu 15.10のPython
Ubuntu 15.10でPythonの状況を見てみます。Python2.7がデフォルト
Ubuntu 15.10では、Python2.7がデフォルトのPythonとして採用されています。デフォルトのPythonのバージョンを調べる
デフォルトのPythonのバージョンは、以下のコマンドで調べることができます。
python --version
デフォルトのPythonのバージョンは、Python 2.7.10であることが分かります。
Python 2.7.10は2015/5/10にリリースされていますが、Python 2はすでにメンテナンスリリースのみ行われている状況です。
今後新機能の追加等は行われず、不具合の修正のみ行われます。
デフォルトのPythonの実態
「python」コマンドは、デフォルトのpythonを指すソフトリンクになっています。以下のコマンドでpythonの実態を調べることができます。
ls -l `which python`
上記から、「python」コマンドは「python2.7」を指していることが分かります。
Python3はすでに利用できる
Python3はUbuntuのリポジトリーで提供されており、すでにインストール及び利用できる状態です。ただ、デフォルトのPythonになっていないだけです。
Python3のバージョンを確認すると、以下のように「3.4.3+」になっています。
Python 3.5も利用可能
更に新しいバージョンであるPython 3.5も利用できます。Python3.5のバージョンを確認すると、以下のように「3.5.0+」になっています。
影響を受けるソフトウェア
上記でも記述した通り、デフォルトのPythonがPython2であることを期待して動作するソフトウェアが影響を受けますが、もう少し詳しく見てみます。Python2とPython3は互換性がない
Python2とPython3は互換性がないため、デフォルトのPythonがPython3になると、影響を受けるソフトウェアは正しく動作しなくなります。デフォルトのPythonで動作するソフトウェア
デフォルトのPythonで動作するソフトウェアは、ソースコードに以下のような記述があるソフトウェアです。#!/usr/bin/python
#!/usr/bin/env python
他にも記述方法がありますが、いずれも共通する点は、Pythonのバージョン指定を行っていない点です。
以下のように、Pythonのバージョン指定を行っているソフトウェアでは、デフォルトのPythonのバージョンに影響を受けません。
#!/usr/bin/python2
#!/usr/bin/env python2