LoginSignup
6
2

More than 3 years have passed since last update.

Python 2.7.x から移行する方法

Last updated at Posted at 2019-02-06

Python 2.7.x のサポート終了まで1年を切りましたね!

Python2.7.0 のリリースが2010年7月3日ですから、

「えっ?僕が入社した時には、すでに3.xでしたよ?」
「2.7なんて使ったことがない」

という人も多いことでしょう。一方でいまだに2.7.xとの腐れ縁が切れない人も多いと思います。私もそうです。

そこで、今年こそPython 2.7を廃止するべく、3.xへの移行方法を調べてみました。

公式ドキュメントに載っていた

実は調べるまでもなく、公式ドキュメントに載っていました

あなたのプロジェクトを、単一ソースで Python 2/3 両方に対応させる基本的なステップは次のとおりです。

  • Python 2.7 だけをサポートすることに気を配ってください。
  • 良いテストカバレッジを確保してください。 (coverage.py が推奨されます; pip install coverage)
  • Python 2 と 3 の違いを学びましょう。
  • Futurize (もしくは Modernize) を使ってコードをアップデートしてください。 (たとえば pip install future)
  • Python 3 サポートに関してデグレを防ぐために Pylint を使ってください。(pip install pylint)
  • caniusepython3 を使ってどの依存性があなたの Python 3 の使用を妨げているかを検出できます。 (pip install caniusepython3)
  • 依存性があなたを邪魔しなくなってさえしまえば、Python 2 & 3 への互換性を保つのを保障するために、継続的インテグレーションを使いましょう (tox が複数バージョン Python 相手のテストの手助けをしてくれます; pip install tox)
  • Consider using optional static type checking to make sure your type usage works in both Python 2 & 3 (e.g. use mypy to check your typing under both Python 2 & Python 3).

Python 2 から Python 3 への移植 — Python 3.7.2 ドキュメント

最後の行だけ未翻訳なのが残念ですが、標準ライブラリだけでなくオススメのサードパーティ・ツールまで紹介しています。さらに、ページの後半には詳細手順も載っています。これだけ充実していれば、作業段階の手順はバッチリですね。

なお、残念ながら「上司を説得する」「予算を確保する」といったステップについては情報がありませんでした。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2