Python のパッケージ管理ツール「pip」と「Poetry」を丁寧に解説。
requirements.txt・pyproject.toml を活用した依存関係管理をマスターしよう。
pip は Python 標準のパッケージ管理ツールです。Python をインストールすると自動的に使えるようになります。
# パッケージをインストール
pip install requests
# バージョンを指定してインストール
pip install flask==3.0.3
# 複数パッケージを一度にインストール
pip install flask requests sqlalchemy
pip でインストールする前に必ず仮想環境(venv)を有効化しましょう。グローバル環境が汚れるのを防げます。→ venv ガイドはこちら
# インストール済みパッケージの一覧
pip list
# 特定パッケージの詳細情報
pip show flask
# パッケージのアンインストール
pip uninstall requests
# pip 自体を最新版にアップデート
pip install --upgrade pip
requirements.txt はインストール済みパッケージを記録するファイルです。チームや本番環境で同じ環境を再現できます。
# 現在の環境のパッケージを書き出す
pip freeze > requirements.txt
# ファイルの中身を確認
Flask==3.0.3
requests==2.31.0
SQLAlchemy==2.0.30
# venv を作成して有効化した後に実行
pip install -r requirements.txt
# requirements.txt に手書きする場合の書き方
flask==3.0.3 # 完全一致(推奨)
requests>=2.28.0 # 最低バージョン
sqlalchemy~=2.0 # 互換バージョン(2.x を使う)
pytest # バージョン指定なし
テストツールなど本番環境に不要なパッケージは requirements-dev.txt に分けることで、本番環境の依存を軽くできます。
Poetry は pip の上位互換となる Python プロジェクト管理ツールです。依存関係の解決・仮想環境管理・パッケージの公開まで一元管理できます。
pyproject.toml で管理学習中や個人の小さなスクリプトなら pip + venv で十分です。チーム開発や公開パッケージを作る場合は Poetry が便利です。
Poetry は公式インストーラーを使うのが推奨方法です(pip でのインストールは非推奨)。
# 公式インストーラーを使用
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -
curl -sSL https://install.python-poetry.org | python3 -
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
poetry --version
Poetry (version 1.8.3)
# 新規プロジェクトを作成(フォルダも作られる)
poetry new my-project
# または既存フォルダで初期化
poetry init
作成されるフォルダ構成:
my-project/
├── pyproject.toml ← 依存関係を管理するファイル
├── poetry.lock ← 正確なバージョンを固定するファイル
├── README.md
└── my_project/
└── __init__.py
# パッケージを追加(自動で pyproject.toml に記録)
poetry add flask
# 開発用ツールとして追加(本番環境には不要)
poetry add --dev pytest
# パッケージを削除
poetry remove flask
# 仮想環境内でコマンドを実行
poetry run python main.py
# 仮想環境のシェルに入る
poetry shell
# pyproject.toml の依存をすべてインストール
poetry install
[tool.poetry]
name = "my-project"
version = "0.1.0"
description = ""
[tool.poetry.dependencies]
python = "^3.11"
flask = "^3.0.3"
[tool.poetry.group.dev.dependencies]
pytest = "^8.0.0"
poetry.lock はすべての依存のバージョンを固定するファイルです。チームで同一環境を再現するために必ず Git に含めましょう。
pip と Poetry を使いこなして、再現性のある Python 開発環境を構築しましょう。
仮想環境(venv)と組み合わせるとさらに快適です!