一般社団法人Pythonエンジニア育成推進協会(以下、当協会)の顧問理事の寺田学です。 私は試験の問題策定とコミュニティ連携を行う立場です。 初学者にとって、何でコーディングするのか、どう動かせばいいのか、というのは悩むところだと思います。 そこで今回はバージョンの選択と、エディタについてお話ししてみたいと思います。

  • 著者:寺田学
    一般社団法人Pythonエンジニア育成推進協会 顧問理事

■Pythonのバージョンは何を使うべきか

Pythonは毎年10月にバージョンアップが行われます。現在は3.9が最新バージョンで、今年10月に3.10が公開されます。 ですが、よほど新しい機能を使いたいということでない限り焦って対応する必要はなく、安定して利用できるタイミングでバージョンアップを開始することが多いです(大体1年ほど)。 そのため現在はまだ3.8が使われていることが多く、そろそろ3.9でも大丈夫だなという見込みが立ったので、徐々に3.9に移行されはじめています。 では、なぜ新バージョンにすぐに上げないのか、その理由として次のようなことが挙げられます。

(1)Pythonはバージョンアップされてもコードにあまり変化がない

新しい機能が追加されることはありますが、基本的に以前の機能はそのまま使用でき、プログラムが動作しないということが起きにくいためです。 実際、3.8から3.9へバージョンアップしてみると、コードを変更した部分はほとんどありません。

(2)クラウドサーバやサードパーティ製のライブラリやパッケージなどの対応を待っている

バージョンアップで内部のAPI構造が変更されることがあり、サードパーティ製のパッケージが動かなくなることがよくあります。また、pipインストール時にダウンロードするwheelが新バージョンに対応しているか、テストがされているかが不明瞭なため、それらが明らかになるまで保留します。 実例としては、3.9へ移行後、WindowsでJupyter Labが動かないというケースがしばらく続きました。その他にも、AWS Lambdaで使えるバージョンは3.8であるなど、環境によっては新バージョンに対応していないことがあります。

(3)サポートが5年間行われている安心感

5年間はセキュリティサポートが行われるため、心配なく使用できます。

※やってはいけない選択 Python 2

OS自体がPythonを必要としているケースがありますが、それらのOSはPython 3台に完全移行できていないことが多々あります。その代表格がmacOSで、Pythonを立ち上げると2.7が起動します。 しかし、Python 2は2020年1月にエンドオブライフを迎えていますので、今後は使用しないほうが良いことには間違いありません。 また、Python 2と3では基本的に互換性がないため、Python 2で書かれたものがPython 3では実行できないことがあります。修正ポイントは決まっていますので、直せないことはありませんが、直してまで使うほどのものではありませんし、どこがどのように変更されているかは2から3に移行した経緯を知っていて、かつ、開発経験を重ねた者にしかわからない部分が多々あります。 そうした理由から、Python 2は選択するべきではありません。

■どうやって開発するか

では次に、開発するための環境です。 開発環境はこれまで開発をしてきた人であれば使い慣れたものを使い続けていることも多くありますし、選択肢はたくさんあります。自分の好みに合うものを見つけられると良いと思います。 コードの入力自体は対話モードで行うか、エディタで行うかという2つの方式を選ぶことができますが、どのような開発環境があるのか、ご紹介します。

<エディタ>

スクリプト系を作る場合やフレームワークを使ってWebシステム等を作るとき、プログラムのモジュールを作るときなどで使用されます。主に使用するのは開発者です。

<対話モード>

Pythonの挙動の確認・実験によく使用されます。学習する際やデータサイエンティストが使用するケースが多いです。

*Vanilla(バニラ)

Python公式のインストール方法の一つで、カスタマイズなどが一切行われていないそのままの状態のものを指しています。最近はデータサイエンス分野のライブラリも導入が簡単になり、この選択をする方が増えています。 サポートされていないものや自分好みに設定する難しさはあります。このPython.orgで配布されている公式インストーラであればサポートが受けやすいため、おすすめです。
※Python.orgで配布されているものはPython Software Foundation(PSF)というPython.orgを運営する法人によって作成されています。
ちなみに、バニラはバニラソフトクリームからとられています。何も入っていない標準的なものという意味です。

*Anaconda

データサイエンス系のパッケージが一括りにまとめられているため、データサイエンティストや教育機関を中心に人気を集めています。通常、開発環境ではpipコマンドを使用して必要なものをインストールしますが、Anacondaは全てまとめてやってくれるため、楽で便利だという評価を得ています。 これはAnaconda社という企業が作っているディストリビューションのため、方針が企業の意向に左右されます。事実、大規模な商用利用の場合は有償化されるなど、Anacondaのライセンス形態が最近複雑になってきています。こうした変更は今後も実施される可能性が高く、使用は慎重に判断する必要があります。 個人的な意見としては、ライセンス料改定の可能性が高いことに加え、Anaconda社のみによる開発で成り立っていることや、Anacondaコミュニティに閉じられていることから、その文化の中で解決しなくてはならない部分が多いため、あまり使用を勧められません。

*Jupyter Lab(Jupyter Notebook)

Webブラウザ上でPythonなどを実行できるもので、対話形式で行われます。実験ノートのようなイメージで、実験のためにコードを少しだけ書くときに使われています。 また、データサイエンティストが使用するケースが多く、Notebookで作成したものを成果物として顧客に提出することもあります。データ分析や機械学習ができるため、ここだけで世界を閉じてしまう人もいます。

*IDLE

Pythonの統合開発環境として提供されており、対話モードも使用できますが、基本的にエディタとして使用されます。本格的な開発になると機能的に足りないものが出てくるため、開発者は他のツールに移行することが多く、初学者が学習に使用するのに適しています。

*PyCharm

PHPやJava、Ruby 向けのエディタを提供しているJetBrains社が提供するPython用のエディタで、無料版と有料版(個人初年度約1万円、継続で値下げ、企業向け有)があります。しっかり使う方は有料版を使用しています。 いろいろな人と話をしていると、だいたいがこのPyCharmか次に紹介するVS Codeが挙がることが多いです。

*Visual Studio Code(VS Code)

Microsoftが提供する無料のエディタで、いろいろなアドオンが揃っており、最近はVS Codeの使用者が増えていることからエコシステムがとてもよく回っています。都度行われる機能強化により、Docker対応や、Gitの連携などができるようになり、VS Codeで完結することが増えています。

*おまけ:PEP8に則った記述に自動変換してくれるBlack様を併用

ところで、PythonにはPEP8というコーディング規約(スペースや括弧の書き方等)があります。誰もが読みやすいようにするための指標となるもので、なるべくこれに合わせた書き方をするのが望ましいのですが、初学者には難しい面が多々あると思います。 そうしたときにはBlackという強制的にフォーマットを変えてくれるツールを使用するのもありだと思います。このBlackは、議論の余地は一切無しとばかりにコードを強制的に矯正してくる、いわゆる“俺様ツール”ですが、スペースの入れ忘れがあっても自動で追加してくれるのでとても便利です。 使われ始めた当初は賛否両論でしたが、最近のコミュニティの傾向では「Black様が言っているならしょうがない」という雰囲気になっています。 フォーマッターに通してしまうことで余計なことを考える必要がなくなるため、効率よく学習することができます。VS Codeでも簡単な設定で入れることが可能です。

■さいごに

個人的には環境構築時のカスタマイズがあまり得意ではないので、ちょっとボタンを押すだけで環境が整うのが嬉しいタイプです。VS Codeはそういう部分がよくできており、おすすめのライブラリが表示されて、それを押していくだけで簡単にそれなりの環境が整います。

プロエンジニアによるエディタ戦争がたびたび繰り広げられるほどエディタをめぐる論争は絶えません。 実は5,6年ほど前にPyCharmで決着がついたのですが、そこに殴り込みをかけたのがVS Codeです。Microsoftの本気を見たといってもいいほどのもので、今では多くのプロエンジニアが使っていると思います。 私自身、さまざまな環境を使う中で、JavaScriptはVS Code、PythonはPyCharmでしばらく落ち着いていましたが、最近はVS Codeに一本化しています。PyCharm自体はいいところがたくさんありますので、有料版は今後も持ち続けていくつもりです。

これまで、いろいろな環境を試しましたが、技術の進化が激しいこともあって、数年に一度くらいのペースで変わることは仕方なく、5年10年と使えるものはありません。 とはいえ、手に馴染むエディタは絶対に持っていた方が良いと思っています。今でもEmacsを使っている人もいますので、自分にとって馴染むものであれば、それを使い続けるのも良いですし、不満が出てきたら新しいものを探すというので良いと思います。 では、次回は動作させるための環境についてお話ししたいと思います。

当協会の最新情報は公式サイトか、公式Facebookページでご覧いただけます。FacebookページではPythonに関連したニュースもお知らせしていますのでぜひフォローしてみてください。また、YouTubeチャンネル「Pythonエンジニア認定試験」では、私が試験概要や学習のコツをお話ししたものや、合格した方のコメント動画を公開しています。こちらもぜひご覧ください。

[PR]提供:Pythonエンジニア育成推進協会