pythonでプロジェクトを行うにあたってよく用いられているpyenv, poetry, mypy等のツールを利用する際のコマンドをまとめました。
この記事で述べた各種ツールを用いたテンプレートプロジェクトをgithubで公開しています。
pyenv
python自体のバージョン管理ツール
インストール
brew install pyenv
echo '
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
' >> ~/.zshrc
source ~/.zshrc
pythonのインストール
# インストールできるバージョンの一覧
pyenv install --list
pyenv install 3.10.1
pyenv global 3.10.1
# インストールされているバージョンの確認
pyenv versions
python -V
poetry
pythonのパッケージ管理ツール
インストール
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
# パスが通っていない場合は`source $HOME/.poetry/bin`を実行してください
# プロジェクト内に仮想環境を作成
poetry config virtualenvs.in-project true
poetry config --list
プロジェクト作成
# 新規プロジェクト
poetry new my_project
# pyproject.tomlやpoetry.lockがある場合
poetry install
poetry install -E <extra-name>
パッケージの追加
# 検索すると`pip install <package>`で出てくるものをを以下に置き換える
poetry add <package>
poetry add <package>==<version>
poetry add <package> --dev
# 環境に依存するパッケージを入れる
poetry add --optional <package>
# extrasを記載
# [tool.poetry.extras]
# <extra-name> = ["<package>"]
# 実際にインストラクターするには次が必要
poetry update
poetry install -extras <extra-name>
# アップデート
poetry update <package>
poetry self update
# 削除
poetry remove <package>
その他
# インストールされているパッケージ一覧
poetry show
# 仮想環境に入る
poetry shell
# 仮想環境内で各種コマンドの実行
poetry run <command>
pytest
pythonのテストツール
実行
poetry run pytest
make test
# 特定ファイルのみ
poetry run pytest tests/test_<file_name>.py
リンター
- flake8
pythonのコード規約チェックツール - black
pythonのフォーマッター - isort
pythonのimportのソートツール - mypy
pythonの型チェックツール
実行
# まとめて実行
make lint
make lint target=<target>
# 個別に実行
poetry run <tool> .
make <tool>
# 特定ファイルのみ
poetry run <tool> src/<file_name>.py
jupyter notebook
対話型のpython実行環境
notebookを開く
vscodeでipynbファイルを開くと実行される
ブラウザで開く場合
make jupyter
git管理
notebook形式ではdiffが見づらいので、pyファイルをgit管理する
# notebookとpyファイルを同期
make sync-notebook
# pyからnotebookを作成
poetry run jupytext --to notebook notebook/<file_name>.py
sphinx
pythonのドキュメント作成ツール
docstringを自動で読み取ってhtml形式に変換する
手動で作成するファイルはdocs/内に配置
実行
make sphinx
make sphinx-reflesh
出力
docs/_build/以下にhtmlが出力される
typer
pythonのCLI作成ツール
src/cli.pyで利用
実行
make cli target=<command>
poetry run python -m src <command>
# ヘルプを表示
make cli target=--help
poetry run python -m src --help
poetry run python -m src <command> --help
profile
実行時間を計測してボトルネックを探す
実行
poetry run python -m cProfile -o logs/profile.stats -m src <command>
poetry run snakeviz ./logs/profile.stats