kledgeb Ubuntuの使い方や日本語化、アプリの使い方を紹介しています。

デフォルトの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


関連記事一覧
オプション