10
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

pythonでのプロジェクト作成に関するツールの使い方まとめ

Last updated at Posted at 2022-03-05

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
10
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?