こんにちは、みやびのです。
2020年4月を最後にPython2.xのメジャーアップデートが終了しました。
Python Software Foundation: Press Release 20-Dec-2019https://t.co/LHCi0GKx9j
要約:
Python2のメジャーアップデートは2020年4月で終了。Python2で開発している人はPython3に移行することを推奨。#Python#プログラミング— みやびの@miyabino.py (@miyabikno) January 12, 2020
すぐに使えなくなるわけではありませんが、セキュリティ上のリスクがあるため2.x系を使っている人は早めに3.x系への切り替えの準備をしておきましょう。
参考>>PYTHON 2 SERIES TO BE RETIred bY APRIL 2020
Python2.xが終了。影響は?
アップデートの理由と影響
前述の通り2020年4月でpython2.x系のメジャーアップデートが終了となりました。
メジャーアップデートの終了なので2020年4月以降も使うことは可能です。
しかし、公式では以下の通りPython3.x系への移行を推奨しています。
The CPython core developer community is retiring the Python 2 series after nearly 20 years of development. The last major version 2.7 will be released in April 2020, and then all development will cease for Python 2. Users are urged to migrate to Python 3 to benefit from its many improvements, as well as to avoid potential security vulnerabilities in Python 2.x after April 2020. This move will free limited resources for the CPthyon core developer community for other important work.
引用元:Python Software Foundation: Press Release 20-Dec-2019(Python公式サイト)訳:
CPythonコア開発者コミュニティは、ほぼ20年間の開発を終えてPython 2シリーズを廃止しています。最後のメジャーバージョン2.7は2020年4月にリリースされ、その後すべてのPython 2の開発を終了します。ユーザーはPython 3に移行して、多くの改善から利益を得るとともに、Python 2.xの潜在的なセキュリティ脆弱性を回避することをお勧めします。
この動きにより、他の重要な作業のためにCPthyonコア開発者コミュニティの限られたリソースが解放されます。
全文はこちら>>PYTHON 2 SERIES TO BE RETIred bY APRIL 2020
上記の通りPython2.x系は潜在的なセキュリティのリスクを持っているため現時点でも公式的には利用を推奨していないようですね。
また、開発が終了してしまったので今後Pythonに新たな脆弱性が現れたとしてもPython2の対応は行われないと思います。
なのでPython2.x系を使う場合自前でPythonの持つ脆弱性の対応を行わなけばなりません。
これは結構コストがかかりそうですね。
2.xから3.xに切り替えるのにもコストはかかりますが。
まあ、サービスをどれくらい続けるかにもよりますね。
めっちゃ金かけてすぐサービス終了とかだったらいらんやんと思うし。
あと5年以上続けるなら多少コストを出しても移行する価値はあります。(システムの規模によりますが)
新規開発はPython2.x系を使うメリットはほぼないのでPython3.x系を使いましょう。
ライブラリは2.x系で動いているものもある
ライブラリは3.x系に対応している場合でも裏では2.x系が動いているものも結構あります。
自分が使っているライブラリが2.x系を使っていないかチェックしておいた方がよいです。(ものすごい数のチェックがいりますが)
まあ、即問題が起こるということはないと思うのでしばらくは監視しつつ、ちょっとずつライブラリのチェックを進めるのが良いと思います。
ちなみに当サイトのコードは全部Python3.x系で書いているので直接的な影響はありません。
が、ライブラリは2.x系で動いているものもあるので間接的な影響はありそうです。(Todoistの公式APIとか)
Python2系のライブラリもアップデートがいずれ終了
大半のライブラリの更新も2020年中には終了すると推測されます。よって2021年くらいからはライブラリに脆弱性が生まれた場合でもPython2.x系の対応はされない可能性が高いです。
Python2本体ならともかくライブラリまで考えたら流石に手に負えないですね。
結論:早めにPython2からPython3へ移行しよう
というわけで特別な理由がない限りはPython2は終了するのでPython3へ移行しましょう。もしPython2を勉強している人がいたらPython3に切り替えてください。
移行方法とかは・・・どこかで書くかもしれません。
私がPython2あまり触ったことないので違いがあまりわからん・・・。
公式ドキュメントを読むとPython3に変換する手順は紹介されていますが、それだけで対応できるかは微妙ですね。
https://docs.python.org/ja/3/library/2to3.html
では、今日はこのあたりで。