これは 求ム!Pythonを使ってAzureで開発する時のTips!【PR】日本マイクロソフト Advent Calendar 2020 - Qiita 10日目の記事です。
TL;DR;
Python初学者でもVSCodeのRemoteContainersでイケイケに開発できる
背景
Pythonで書かれたコードを触る機会がありました。
しかし私はGoやJava、TypeScriptは書いていても、Pythonを書いたことはありませんでした。
そんな私がPythonの開発環境構築をバシュッと行った方法をご紹介します。
とりあえず VSCode RemoteContainers
私はVSCode派なので、VSCodeを使って開発がしたいと思いました。
そこで、RemoteContainersで環境を作れば良いよねってことで環境構築していきました。
RemoteContainersとは
VSCodeの拡張機能の一つで、ローカル上のDockerコンテナを立ち上げてその中で開発作業を行うものです。
拡張機能の正式名称はVisual Studio Code Remote - Containersであり、本記事ではRemoteContainersと呼ばせていただいています。
使い方やさらなる詳しい説明は他の文献を参照ください。
- Visual Studio Code Remote Development
- Developing inside a Container using Visual Studio Code Remote Development
- VSCode Remote Containerが良い - Qiita
どんな感じでやったのか
公式で各種言語用のサンプル設定があるので、それをベースに構築しました。
今回はPythonだったので、microsoft/vscode-remote-try-python: Python sample project for trying out the VS Code Remote - Containers extensionの.devcontainer
ファイルをプロジェクトにコピーして利用しました。
あとは開発に必要な拡張機能だったり、ツールだったり、設定だったりを定義していくだけで開発環境が構築できます。
拡張機能を入れたい場合
ローカルで使っているVSCode拡張がそのままRemoteContainersでも使えるという訳ではないため、別途拡張機能を入れる設定を記述しなければいけません。
その場合は、.devcontainer/devcontainer.json
の"extensions"
に必要な拡張機能のIDを入れていけばRemoteContainers起動時に自動で追加していってくれます。
開発に必要なツールを入れたい場合
こちらもローカルにあるaws
コマンドがそのままRemoteContainersでも使えるという訳ではないため、設定を記述していきます。
先ほどとファイルが異なり、.devcontainer/Dockerfile
の最下部にインストールコマンドを追加するとRemoteContainers起動時にインストールしてくれます。
その他
RemoteContainersの起動時にrequirements.txt
に定義されたパッケージも自動でインストールしてくれるので、RemoteContainersが起動した時点で全部入りの環境が手に入ります。
バシュッと出来たのか
実質、.devcontainer
を作ってRemoteContainersを起動しただけでマジでバシュッと環境が出来ました。
またVSCodeのPython拡張が優秀で、コードアシストしてくれたり、フォーマットしてくれたりで、「俺、Python書ける!」って思うくらいイケイケに開発することができました。
(実際は初学者なので、Goなどで書くよりウン倍も時間かかりました)
まとめ
どの言語でも共通して言えると思いますが、初学者にとって環境構築が鬼門になりますが、
そんな環境構築でも、VSCodeのRemoteContainersを使うと、Pythonの全部入りの環境が手に入ります。
そのため、Python初学者であってもイケイケに開発することができます。
またRemoteContainersで開発環境を構築すると、開発環境毎にランタイムを変えることがなくなります。
今回の場合は、Macで開発しており、MacのPythonは2系でしたが、RemoteContainersの中ではPython3系で開発できていました。