Python試験・資格、データ分析試験・資格を運営する一般社団法人Pythonエンジニア育成推進協会のページです。私は試験の問題策定とコミュニティ連携を行う立場です。みなさん、開発環境の構築はどうされていますか?特に初心者の方からするとどんな開発環境が良いかわからない部分は多いと思います。KUMAMOTOで登壇した際に開発環境について6項目に分けて何をどういった指針で選んで利用しているかという点についてお話したのですが、それをまとめた内容を昨年の3月に、マイナビニュースさんのTech+でコラムとして公開しました。Pythonのおすすめ開発環境2022版この記事から1年が過ぎ、2023年になった今の開発環境がどれくらい変わったのかについてお話をしたいと思います。■私の開発環境変遷、Pythonやるならこれで問題なし先に結論を上げしまうと、昨年からはほぼ変わっていないというのが回答になります。こちらの表が以前書いた記事でご紹介した内容に2023年を追加したものです。Code変わった点と言えば、その時々の要件に応じてバージョンを3.9か3.10を使い分けているという点くらいです。Pythonの標準実装であるCPythonは今でもおすすめのままかわりませんし、それ以外の部分に関してもこのままでも問題ありません。今回は上記の6項目の中から特にフォローが必要な内容を取り上げたいと思います。■Python3、どのバージョンを使うのがベスト?現在、Pythonは12カ月ごとに新しいバージョンがリリースされており、昨年の10月に3.11がリリースされています。このリリースでは新たな機能の追加やスピードアップが図られていますが、下位互換性が保持されていますので、内部的なAPIが大幅に変更されていない限りは基本的にどのバージョンを利用したとしても、書いたコードが動かないという事はめったになく、3.9で書いたコードは3.11でも基本的に動きます。新しい機能が入ったとしても予約語が増えている程度で、過去のプログラムで使用している関数とその予約語がバッティングしていないのであれば基本的に問題なく動きますし、動かなかったとしても少しのお直しで済むレベルです。した背景がある中で、どのバージョンを使えばいいかといえば、追加された機能を使いたいという目的がなければ特に焦る必要はなく、もしメリットを感じたなら積極的に上げていくという方針で問題はありません。バージョン選定において考える必要があるとすれば、利用したいライブラリの対応状況と、環境面の対応状況です。Lambdaなどのサービスを利用する際、LambdaはPythonのどのバージョンに対応しているかを事前に確認する必要があるというようなことです。私自身はWeb開発やデータ分析を中心に行っていますが、それをするにあたって環境やライブラリの対応状況が結構な影響を受けますので、対応状況を見極めてからどのバージョンを使うかを決めています。動かす環境はまちまちですが、そこまで新しい環境ではなく、また、ライブラリのバージョンに依存しない形で構成していることから3.9の方が多少いいという状況のものが多いため、よく利用するのは3.9でその次が3.10になります。3.11に関してはそろそろ使い始めてもいいかなと感じている段階ではありますが、3.11のメリットである実行速度が改善されたという点を生かせるほど速度に依存しているシステムが多くないため、飛びついてまでやるというものでもないと考えています。いえ、今後のライブラリの対応状況や、動かす環境によっては今後、3.11を利用する場面が増えてくると思います。ところで、3.10には構造的パターンマッチ(match-case)が追加されており、これを使った方がスマートに動かせる場合がありますが、私は3.9で動かすことを考えて今のところはあえて利用していません。■インストール方法PSFが公式に準備しているものを使っている人が多く、情報も多いことから私もこちらを利用しています。後ほど紹介しますが、最近はDocker技術を使うことが非常に増えていることもあって、インストールはDockerが公式に出しているものを使って環境を構築することが増えています。実際に動かすときの環境構築にもDocker技術を使うものが増えており、特にWeb系ではこの環境構築方法がより多くなっているため、適切なDockerのイメージを使うようにしています。ちなみに、昨年の記事にも書きましたが、公式インストーラを使えば、3.9と3.10、3.11を一つのPC上に共存させることが可能です。同一マイナーバージョン内でのマイクロバージョンの共存はできません。→3.9.xと3.8.xは共存できるが、3.9.8と3.9.7は共存できない■仮想環境Python標準であるvenvモジュールが浸透していることもあって、利用している方が多いと思いますし、私自身もこちらを利用しています。先ほどのインストールにかぶる話ではありますが、Dockerを使うことが増えたことで、venvで切らずともDocker内で完結するため、一つのOSに複数のPythonを入れるより、Dockerという仮想環境内で環境の切り分けをする機会も増えています。従来であればPythonの仮想環境は一つのPCの中に複数のサードパーティ製パッケージを入れていましたが、近年は開発や本番の運用にDockerを使って仮想化していることが増えているため、あえてvenvを利用する必要がなく、私自身もDockerを使うケースではvenvモジュールを私は利用しません。ローカルで行う場合はvenvを利用しています。■Pythonでのインストーラはpipサードパーティ製パッケージをインストールする際にはpipコマンドを使っています。詳しくは2022年版を確認して欲しいのですが、この時にお話したWheelというビルド済みの配布用バイナリパッケージがより便利になりましたので、いまもpipでインストールして利用しています。■エディタはVSCodeコミュニティでもどのエディタが良いかという議論はいろいろな意見がありますが、私個人としてはPyCharm有料版も持ったままですが使う機会が減り、VSCodeを使う機会が多くなっています。PyCharm自体は進化していますので独自の良さはもちろんありますので、利用している人も多くいますし、便利なことは確かです。私はWebシステムを構築する時にはPythonやTypeScriptの2つの言語を主に使っているため、VSCodeの方が使い勝手がいいと感じています。Labの場合はVSCodeから使うこともあります。VSCodeは無料で利用できる上、Web開発で使える優秀なプラグインが多いことから、Python関係なく、Web開発者でも利用する人が増えています。共同で何かを開発する場合には環境を合わせるのが楽なため、VSCodeが利用されるシーンが増えています。積極的に使うようになったことです。使う人の多くはVSCode経由で使っていると思います。自動的に立ち上がってくれます。