2019年も折り返しであと半年。Python 2系統のサポートが終了し、各種ライブラリもPython 2系向けが提供されなくなっていく。そろそろ「Python 3系統」に切り替えよう。
Pythonは現在、下記の2系統が、公式サポートする最新版としてリリースされている(参考:「Pythonの各バージョンの状況」。※執筆時点=2019年6月27日)。
当然ながら、本「Deep Insider」ではより新しいPython 3を推奨しており、記事内容もPython 3が前提条件となっている。しかしながら、Python 2は広く使われていて、その人気はまだ根強い(過去にあった、ブラウザにおけるIE6問題に近いかもしれない)。例えば最近、筆者は2019年7月発売の、とある製品を予約注文しようとして、仕様を確認すると、サポートするPythonのバージョンが2.7となっており、がくぜんとしてしまった。……あと半年で終わるのに……と(詳細後述)。
Python 2系統の最新バージョンであると同時に最終バージョンである「2.7」は、下記のように10年間も使い続けられてきた。
2014年にサポート期間が延長された理由は、主に下記の理由からだ。
「いや、サポートが切れるだけでしょ。そんなにあおらなくても、これまでどおり2系統を使い続ければ問題ないじゃん」と考える人もいるだろう。しかし、そうは問屋が卸さない。というのも各種ライブラリも、「Python 2系統のサポート終了」を宣誓することが1つのムーブメントとなっているからだ。
2015年以降、多くのライブラリは2系統と3系統の両方をサポートしてきた。しかし、互換性の問題もあり、両方をサポートし続けることは効率性の面でコストがかかっている。それだけでなく、結果的にはPython言語の発展も阻害していると一部エンジニアから懸念されていた。
その問題を解消するために、Python 3プロジェクトを持つもの同士が集まり、
という共同宣誓を、「Sunsetting Python 2 support」(python3statement.org)というサイト上で公に発表している(図1)。
この中には、Pythonでデータを扱うために必須のNumPyやpandas、Matplotlib、Jupyter Notebookから、BokehやPillowなどまである。さらには、ディープラーニング/機械学習のライブラリであるTensorFlow、scikit-learnなどなど、そうそうたる有名ライブラリまでも名を連ねているのだ。図2のようにその数も多い。
AI・機械学習を学んでいるDeep Insiderの読者にとっては、「もはやPython 3を使うしかない状況となっている」ことを、図2を見るとご理解いただけるだろう。
python3statement.orgの[Projects Timeline]セクションでは(図3)、一部Pythonライブラリの各バージョンが持つタイムライン(=リリースから、サポート終了まで)がグラフ表示されており分かりやすい。気になる人はぜひサイトを訪れて参照してみてほしい。
これを見ると、pandas、scikit-learnに至っては、既にPython 2系統のサポートは終了している状況である。
[Projects Timeline]セクションには載っていないが、TensorFlowの場合は、2020年1月1日をもってPython 3のみをサポートし、Python 2はサポートしなくなる。2020年以降に、どうしてもPython 2を使う必要があれば、古いバージョンのTensorFlowを使わざるを得なくなる状況だ。
以上の通り、Python 2の寿命はあと半年である。これからは意識して2系統ではなく「Python 3」を使っていくべきだろう。また、最新のライブラリを使う必要がある既存のPythonプロジェクトについても、Python 3への移行をそろそろ計画して始めなければならない時期である。本稿がそのきっかけとなればうれしい。
Copyright© Digital Advantage Corp. All Rights Reserved.