䞀般瀟団法人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゚ンゞニア育成掚進協䌚