Python学習のためのエクステンションガイド

Pythonは、そのライブラリの多さから、機械学習、AI、データ分析、科学技術計算に向く言語だといわれている。誤解しないでほしいが、「Webアプリ作りたいけど方向が違うから無理かな」というわけではなく、あくまでライブラリが多いからと言うだけなので、Webや他の開発には向いていないというわけではない。また、初心者向けの言語であるともいわれている。まあ、これには疑問があるが。ただ、比較的にとっつきやすい言語ではあるといえよう。

AnacondaやGoogle Colaboratory、Pycharmといった環境を使いたい場合は、この記事をとばしていただいても構わない。

前記事「プログラミング学習のための環境を作ろう」を読んでおり、学習環境の準備ができていることを前提としている。まだ、読んでいない方は、必ず読んでおいていただきたい。

環境

  • Linux mint 20.3 MATE Edition
  • Visual Studio Code 1.66.2
  • Python 2022.4.1
  • Pylance 2022.4.3
  • Jupyter 2022.3.1000901801
  • Jupyter Keymap 1.0.0
  • Jupyter Notebook Renderers 1.0.6
  • Code Runner 0.11.7
  • Indent-Rainbow 8.3.1

拡張機能ではないが、コーディング規約に沿って記述されているかチェックするPythonのライブラリーである。コードの品質を保つために導入しておく。インストールおよび設定は後述する。

  • pep 1.7.1
  • autoflake8 0.3.2
  • flake8 4.0.1

エクステンションガイド

Pythonの学習に必要な拡張機能の使い方と設定について紹介する。

Python/Pylance/Jupyter/Jupyter Keymap/Jupyter Notebook Renderers

Pythonでプログラミングするなら、必須の拡張機能。デバッグ、コードフォーマット、エラーチェックなどをサポートしてくれる。コード補完を始めとするさまざまなサポートを行ってくれるPylanceという拡張機能も一緒にインストールされる。また、いつのまにかJupyter、Jupyter Keymap、Jupyter Notebook Renderersといった拡張機能もPythonをインストールすると自動的にインストールされるようになった。これらは、Pythonと依存関係にあるので、いらないからといって削除しないことをおすすめする。

使い方

インストールしておくだけで問題ない。Jupyterについては、後述する。

設定

不要

Pylanceによるコード補完
Pylanceによるコード補完

Jupyter/Jupyter Keymap/Jupyter Notebook Renderers

Jupyterについて簡単に解説しておく。これらの拡張機能は、「Jupyterノートブックのサポート、Intellisenseをサポートするインタラクティブなプログラミングとコンピューティング、デバッグなど。」(by Google 翻訳)ということである。わかりやすく言うと、Visual Studio Code上でNotebookが使えますよということである。

では、実際にやってみよう。

適当な名前のファイルを作成する。その際のファイルの拡張子は必ず.ipynbとする。ここでは、demo.ipynbとしてみた。どうしたことでしょうコードを記述する部分がNotebookになっている。

Jupyter Notebookの実行

Hello worldとやっても面白くないので、円を描いてみる。あらかじめ、必ずmatplotlibおよびnumpy、ipykernelをpipを使ってインストールしておく。インストールしておかないどうなるのか、実行時にインストールしろとうるさいのである。

pip3 install matplotlib numpy ipykernel

numyインストール時に“f2py…”とか警告が出るかもしれないが、とりあえず置いておく。コードを記述して実行した結果である。半分隠れているが円が描かれている。

Visual Studio CodeでJupyter Notebookを使ってじっこうした結果。円が描画された。
Visual Studio CodeでJupyter Notebookを使う

Code Runner

ターミナル(Ctrl+Shift+@)から「python3 <ファイル名>.py」というように実行する必要はない。

使い方

Ctrl+Alt+Nを押して実行する。それ以外も方法はあるが、マウスによるクリックなのでキーを押すほうが早い。

Code Runnerによる実行。自動的にターミナルが開き、出力に実行結果が表示される
Code Runnerによるコードの実行
設定

基本的には不要だが、Linux mint 20.2になって、Python 2系のサポート終了とともに「python <ファイル名>.py」が使えなくなったためである。今後は「python3 <ファイル名>.py」としなければならなくなった。そこで、settings.jsonに以下のコードを追加しておく。settings.jsonの開き方は、Code Runnerの設定から行える。方法については「HTML/CSS学習のためのエクステンションガイド」のLive Sass Compilerの設定を参考にしていただきたい。

また、他のプログラミング言語をexecutorMapに追加する方法については、Code Runnerの詳細をスクロールしていくと掲載されている。Windows用だが、PATHが設定されていれば実行ファイルへ絶対指定をしなくともよい。

"code-runner.executorMap": {
        "python": "python3"
}

Indent-Rainbow

インデントを色分けしてくれる。なんでもないような機能だと思うだろうが、Pythonではブロックの範囲を空白のインデントで表すため、この機能は何気に便利なのである。

使い方

インストールのみ。

Indent-Rainbowによるインデントの色付け。インデントによる対比がわかりやすくなる
Indent-Rainbowによるインデントの色付け
設定

不要だが、インデントの色を変更したい場合は設定を変更しよう。Ctrl+,で設定画面を開き、検索欄に「indent-rainbow」と入力する。Indent Raibow: Colorsのsetting.jasonで編集をクリックする。下記のコードを任意の位置に記述する。一番外側の{}の外に記述しないこと。

インデントの色を変更してみた。保存したら、Visual Studio Codeを再起動する。ちなみに、1個しか書かない場合は、インデントの色がすべて同じになるので注意が必要である。下記では4つのインデントまで指定している。5つ目は最初の色になる。基本的に4個あたりまで色を指定しておくといいだろう。もとに戻すには、ブロック丸ごと削除する。

,
"indentRainbow.colors": [
        "rgb(252, 175, 62)",
        "rgb(252, 233, 79)",
        "rgb(138, 226, 52)",
        "rgb(114, 159, 207)"
],

Lintingのインストール

Pythonにはコーディング規約というものが存在する。コードの品質を一定に保ち、保守性や可読性の向上を図るためのものである。コードをチェックしてくれるのがLintと呼ばれるものだ。インストールしておくと、コーディング規約に沿った書き方をしていない場合、警告、Errorなどを出力してくれる。ありがたいものなのである。

そういったいろいろなチェックをしてくれるのが、Flake8というライブラリである。インストールは、pipコマンドを使って、Ctrl+Shift+@で開くターミナル内で次のように入力する。

pip3 install autopep8 flake8

これでインストールはできた。autopep8とflake8を有効にしておこう。

flake8の設定

最初にflake8を設定する。[ファイル]→[ユーザー設定]→[設定(Ctrl+,)]と進んで、Visual Studio Codeの設定画面を開く。設定の検索欄にpython.linting flake8と入力する。

  • Python > Linting: Flake8 Enabledにチェックをいれる
  • Python > Linting: Flake8 Argsの項目の追加をクリックして下記のように追加する
--ignore=W293,W504
--max-line-length=150
--max-complexity=20
flake8の設定
flake8の設定

autopep8の設定

autopep8は自動コード整形ツールと呼ばれるもので、pep8の規約に沿ってコードを整形する。いわば可読性を上げるためのツールだ。

Visual Studio Codeの設定画面を開いて、python.Formatting入力する。設定する項目は3つある。Autopep8 Args、Autopep8 Path、Autopep8 Providerだ。このうち、Autopep8 Argsを除く2つの項目にautopep8を入力する。pep8では、1行の長さを79文字までと決めており、79文字を超えるとエラーとなる。そのため、Autopep8 Argsに1行の長さを150文字と設定している。ただし、1行の文字数は任意であり、こうしなければならないということではなく開発の現場において決定すればよい。

最後に、コード規約に関する2つのサイトを紹介しておくので一読しておくとよい。

VS Code コーディング規約を快適に守る

はじめに — pep-ja 1.0 ドキュメント

導入しておきたいライブラリ

pipコマンドを使って、入れておくと便利なライブラリを紹介しておこう。このほかにもたくさんのライブラリがあるが、こういったことをしたいと思ったときに導入すればいい。

ライブラリ説明
matplotlib様々なグラフを描画するライブラリ。numpyと併用して使用する。
numpy科学技術計算ライブラリ。ベクトルや行列などの計算ができるようになる拡張機能。
表1. 導入しておきたいライブラリ

コードの実行

Code Runnerの項目を参照のこと。
Ctrl+Shift+@を押して開くターミナルからでも以下のように実行できる。

python3 <ファイル名>.py

以上で、Pythonの学習環境ができた。

では、よいプログラミングライフを!

関連記事:プログラミング学習のための環境を作ろう