『仕事ではPythonを使ったことがない』程度のレベルです。
自習時に調べたことのノートとして記録します。
環境構築
前提条件
- WindowsOS
- VSCodeを利用する
詳細
1.仮想環境の構築:venv
1-1.仮想環境標準ライブラリのvenv
を導入する
コマンドプロンプト
で実行しました
python -m venv {仮想環境のパス}
1-2.仮想環境を作成する
コマンドプロンプト
で実行しました
python3 -m venv venv
1-3.仮想環境を有効化する
1-1
で指定した{仮想環境のパス}
に以下ができていることを確認してくださいpyvenv.cfg
Scriptsディレクトリ
Scriptsディレクトリ
の中にActivate.ps1
Scriptsディレクトリ
の中にactivate.bat
利用するコマンドシェルによって、コマンドが異なります。
1-3-1.PowerShellを使用する場合
PS {仮想環境のパス}\Scripts> PowerShell -ExecutionPolicy RemoteSigned ./Activate.ps1
1-3-2.コマンドプロンプトを使用する場合、
{仮想環境のパス}> Scripts\activate.bat
2.コードを静的解析し、コーディング規約に則っているかチェックする
2-1.Flake8を導入する
Flake8
とは静的コード解析ツールPEP8
のラッパーです。以下のツールを同時に実行することができます。
- pycodestyle:PEP8に準拠することをチェックする
- pyflakes:未使用の変数やモジュールといった論理的なエラーをチェックする
- mccabe:コードの複雑さの指標である循環的複雑度の計測を行う
インストールにはPythonのパッケージ管理ツールである
pip
を使います。
{仮想環境のパス}> pip install flake8
実際の実行結果は以下です。
>pip install flake8 Collecting flake8 Downloading https://files.pythonhosted.org/packages/d4/ca/3971802ee6251da1abead1a22831d7f4743781e2f743bd266bdd2f46c19b/flake8-3.8.4-py2.py3-none-any.whl (72kB) |████████████████████████████████| 81kB 5.1MB/s Collecting pyflakes<2.3.0,>=2.2.0 Downloading https://files.pythonhosted.org/packages/69/5b/fd01b0c696f2f9a6d2c839883b642493b431f28fa32b29abc465ef675473/pyflakes-2.2.0-py2.py3-none-any.whl (66kB) |████████████████████████████████| 71kB 4.5MB/s Collecting pycodestyle<2.7.0,>=2.6.0a1 Downloading https://files.pythonhosted.org/packages/10/5b/88879fb861ab79aef45c7e199cae3ef7af487b5603dcb363517a50602dd7/pycodestyle-2.6.0-py2.py3-none-any.whl (41kB) |████████████████████████████████| 51kB 3.2MB/s Requirement already satisfied: mccabe<0.7.0,>=0.6.0 in c:\users\yutaka\appdata\roaming\python\python38\site-packages (from flake8) (0.6.1) Installing collected packages: pyflakes, pycodestyle, flake8 Successfully installed flake8-3.8.4 pycodestyle-2.6.0 pyflakes-2.2.0 WARNING: You are using pip version 19.3.1; however, version 20.3.3 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' command.
pip
が古かったのでアップデートしてみた時のメモはこちら
実際にコードをチェックする
flake8 src/sample.py
以下自作ツールに対してチェックを実施したときの結果です。(悲惨な結果になりました。)
>flake8 CheckAtResult.py sample.py:26:39: E231 missing whitespace after ',' sample.py:35:27: W291 trailing whitespace sample.py:45:56: E231 missing whitespace after ',' sample.py:45:69: E231 missing whitespace after ',' ・ ・ ・
設定をカスタマイズする(省略)
- プロジェクトのトップディレクトリに
setup.cfg
または.flake8
というファイルを作成し、内部を記述することで静的解析時の設定をカスタマイズすることができます。 setup.cfg
には複数のツールの設定を書くことができます。