0から始めるTA環境作り - エディタの設定(2)
第1回で、Python をインストールして VSCode をインストール、Python を実行できる環境になりました。
ので、今回はこの環境にさらに必用な設定を足していき、Python で快適に開発できるようプロジェクト(ワークスペース)を
指定していきます。
ワークスペースを作る
まずは、スクリプトの作業をするフォルダーを用意します。
このフォルダーは、大きなツールを作る場合は 1 つのツール= 1 つのワークスペースとして切り替えするなどしてもよいですが
最初のうちは、1 つだけ用意しておいて、そのフォルダー以下 にサブフォルダーをつくったりして
整理していくのが良いでしょう。
ファイルから、「フォルダーを開く」を選び、任意の場所に作成したフォルダーを指定します。
今回は D:/work/workDir を作業フォルダーとします。
最後に「名前を付けてワークスペースを保存」で、ワークスペースを保存します。
ワークスペースに設定を追加する
そもそもワークスペースを作る理由とはなにかというと、
プログラムを書く場合には、環境変数に追加したり Python のモジュールを追加したりする必要がありますが、
Windows の設定に(いわゆるグローバルな環境に)どんどんインストールしたり設定を追加してしまうと、
ほかの作業者に渡す場合(作成したツールをリリースして他人が使うケースはよくある)
動かない、けどどうしたら動くようになるのかがわからない問題が発生してしまいます。
ので、できる限りグローバルな環境には設定をせず
ワークスペース単位(自分の作業する単位)に閉じた形で設定をして置くほうが
様々な場合にメリットがあります。
ので、VSCode で作業する場合もワークスペース単位で指定をし
共通の場合はユーザー単位に設定をする...といった使い分けをします。
環境変数を指定
ワークスペースの設定は、「ワークスペースを保存」したときに code-workspace というファイルが作成されていて そこに設定を追加できます。
{
"folders": [
{
"path": "."
}
],
"settings": {
"terminal.integrated.profiles.windows": {
"workspace_cmd": {
"path": ["cmd.exe"],
"icon": "symbol-constant",
"env": {
// 環境変数を追加する
"PATH": "C:/USD/bin;C:/USD/lib;${env:PATH}",
"PYTHONPATH": "C:/USD/lib/python;${env:PYTHONPATH}"
}
}
},
"terminal.integrated.defaultProfile.windows": "workspace_cmd"
}
}
これは自前でビルドした USD を使うための設定を追加したもの。 例えば、会社の環境で共通のモジュールが置いてある場所がある場合などは この PYTHONPATH に、パスを追加することで、VSCode でそのライブラリを追加することができます。 自分の作業環境に応じてここは追加・編集をしておきましょう。
おまけ(pipenv)
VSCode で Python を触る場合に、さらに独立した、再現可能な環境を作りたい場合は pipenv を使用した環境を追加で作ることをお勧めします。
さらに環境を整備していく
ここまでやれば、あとはコードを書くだけですが それ以外に最初に設定をしておけばそのあとは超便利になる設定を入れておきます。
Pylance
Pylance とは、Python の予測変換(AutoComplete)をしてくれる機能です。
このように、入力した文字に続く関数名 を自動で入れてくれたり
関数の変数がなにかを表示してくれたりします。 これを使うとタイポを減らしてくれたりするので、ほぼ必須の拡張機能になります。
なお、Pylance に変わるものとして
などもありますので、好きなものを使いましょう。
autopep8
autopep8 とは、pep8 と呼ばれる Python コーディング規約(エラーにはならないが、書くときに決められている書き方のルール) に沿った形になるように自動で成形してくれる機能のことです。
https://qiita.com/simonritchie/items/bb06a7521ae6560738a7
どうしてこの pep8 が存在してるのか?というと、
たとえば、
a = 10+11
こう書く人と
a = 10 + 11
こう書く人。
def hello_world(a,b,c):
return a + b + c
こう書く人と
def hello_world(a, b, c):
return a + b + c
こう書く人。 スペースの入れ方に差があります。 どちらも問題なく動くコードですが、こういった書き方の違いが積み重なっていくと 別の人が書いたコードを読みにくくなってしまいます。
そういった差異がおこりにくくなるようにするためのルールがコーディングルールです。 ですが、これを気にしながらコードをかくのはそれなりにしんどいので セーブしたときなどに自動で更新されてほしい。 これをかなえてくれるのが autopep8 になります。
まず、VSCode の拡張で Python-autopep8 を入れておきます。
pip install autopep8
さらに、pip を利用して、autopep8 をインストールします。
インストールしたら、 基本設定:設定(JSON)を開く を押して、settings.json を開き、 以下の設定を追加します。
"python.formatting.autopep8Args": [
"--max-line-length=120",
"--ignore=E402,E701,E221,E265"
],
これは autopep8 は非常に便利ではあるものの、なかにはフォーマットされたくないものも存在します。 それをスキップする設定がこちらです。 これは私の設定ですが、チームでこの設定を合わせておくことで ある程度視認性を合わせた形でチームでの開発が可能になります。
さらに、autopep をかけ忘れるのを避けるために「Format On Save」を設定で ON にしておきます。 これを入れておくと、セーブするタイミングで自動で autopep8 が実行されます。
Code Spell Checker
Code Spell Checker とは、その名の通りスペルのミスがあった場合 下線を引いて教えてくれる神アドオンです。 コード内ではアルファベットで関数名や変数名を指定していますが、ついうっかりスペルミス(タイポ)してると それがリリ ースされてしまったあとに絶叫するはめになったり、コードレビューで恥ずかしい思いをすることになります。 そういったことは極力避けたいので、これを入れて指摘されたら素直に直すようにしましょう。
それ以外の細かいもの
フォント
https://github.com/miiton/Cica
プログラミング用のフォントはいくつかあるのですが、私は Cica を愛用しています。 0 と O が のように見分けやすくなっていたりするので、シンプルながらも読みやすいのでおすすめです。
かっこの色
これを ON にすると、ペアになるかっこが同じ色になります。
インデント
Python の場合はインデントが重要なので、indent-rainbow でインデントにも色を入れておきます。
ルーラー指定
"editor.rulers": [80, 120],
Python の pep8 には 1 行 80 文字制限というものがあります(無理なので私は 120 にしている) autopep8 で自動で改行するようにしていますが、それだと変な改行のされ方をしてしまうので ルーラー表示を出しておいて、意識的に改行をいれたりします。
まとめ
ワークスペースでの環境変数の指定、AutoComplete の設定、Autopep8、SPellChecker など 最初に設定しておくと良いものを紹介してきました。 これから先は自分に使いやすいように調整しながらエディタを育てていくのが良いです。