Programming Self-Study Notebook

勉強したことを忘れないように! 思い出せるように!!

開発支援ツール(tox)の導入

f:id:overworker:20200812004214p:plain:h150


『仕事ではPythonを使ったことがない』程度のレベルです。
自習時に調べたことのノートとして記録します。

前提条件

  • WindowsOS
  • VSCodeを利用する

詳細

toxの導入

公式ドキュメント

インストール手順

pip install tox
  • 実行結果
>pip install tox
Collecting tox
  Downloading tox-3.20.1-py2.py3-none-any.whl (83 kB)
     |████████████████████████████████| 83 kB 6.1 MB/s
Requirement already satisfied: toml>=0.9.4 in c:\users\******\appdata\local\programs\python\python38\lib\site-packages (from tox) (0.10.2)
Requirement already satisfied: colorama>=0.4.1 in c:\users\******\appdata\roaming\python\python38\site-packages (from tox) (0.4.1)
Collecting filelock>=3.0.0
  Downloading filelock-3.0.12-py3-none-any.whl (7.6 kB)
Collecting packaging>=14
  Downloading packaging-20.8-py2.py3-none-any.whl (39 kB)
Collecting pluggy>=0.12.0
  Downloading pluggy-0.13.1-py2.py3-none-any.whl (18 kB)
Collecting py>=1.4.17
  Downloading py-1.10.0-py2.py3-none-any.whl (97 kB)
     |████████████████████████████████| 97 kB 6.8 MB/s
Collecting pyparsing>=2.0.2
  Downloading pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
     |████████████████████████████████| 67 kB ...
Collecting six>=1.14.0
  Downloading six-1.15.0-py2.py3-none-any.whl (10 kB)
Collecting virtualenv!=20.0.0,!=20.0.1,!=20.0.2,!=20.0.3,!=20.0.4,!=20.0.5,!=20.0.6,!=20.0.7,>=16.0.0
  Downloading virtualenv-20.2.2-py2.py3-none-any.whl (5.7 MB)
     |████████████████████████████████| 5.7 MB ...
Requirement already satisfied: appdirs<2,>=1.4.3 in c:\users\******\appdata\local\programs\python\python38\lib\site-packages (from virtualenv!=20.0.0,!=20.0.1,!=20.0.2,!=20.0.3,!=20.0.4,!=20.0.5,!=20.0.6,!=20.0.7,>=16.0.0->tox) (1.4.4)
Collecting distlib<1,>=0.3.1
  Downloading distlib-0.3.1-py2.py3-none-any.whl (335 kB)
     |████████████████████████████████| 335 kB 6.4 MB/s
Installing collected packages: six, pyparsing, filelock, distlib, virtualenv, py, pluggy, packaging, tox
  Attempting uninstall: six
    Found existing installation: six 1.12.0
    Uninstalling six-1.12.0:
      Successfully uninstalled six-1.12.0
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
astroid 2.3.2 requires six==1.12, but you have six 1.15.0 which is incompatible.
Successfully installed distlib-0.3.1 filelock-3.0.12 packaging-20.8 pluggy-0.13.1 py-1.10.0 pyparsing-2.4.7 six-1.15.0 tox-3.20.1 virtualenv-20.2.2

バージョンを確認する

>tox --version
3.20.1 imported from c:\users\******\appdata\local\programs\python\python38\lib\site-packages\tox\__init__.py

設定をカスタマイズする

  • プロジェクトのトップディレクトリにtox.iniというファイルを作成し、内部を記述することで設定をカスタマイズすることができます。
    • コードフォーマッターを利用する場合はFlake8よりも先に実行しておきましょう。
[tox]
envlist = black,flake8,mypy
skipsdist = true

[testenv:flake8]
deps = flake8
commands = flake8 src/*

[testenv:mypy]
deps = mypy
commands = mypy src/*

[testenv:black]
deps = black
commands = black src/*

[flack8]
max-line-length = 119
max-complexity =10