3秒でわかる
Python プロジェクトが必要とする外部パッケージを列挙したテキスト。別の環境でも同じ組み合わせを再現するために置きます。
もう少し詳しく
どういうものか
requirements.txt は、そのプロジェクトで使う外部パッケージとバージョンを 1 行ずつ書いたファイルです。中身はただのテキストで、決まった書式は「パッケージ名とバージョン指定」だけです。
requests==2.32.3
pandas==2.2.2
matplotlib>=3.8インストールはまとめて実行できます。
pip install -r requirements.txtなぜ必要か
手元では動くのに他の人の環境では動かない、という事故のほとんどはパッケージの食い違いが原因です。バージョンまで書いたファイルをリポジトリに置いておけば、新しいメンバーも、サーバーも、同じ組み合わせを再現できます。README に「requests を入れてください」と文章で書くより確実です。
具体例
今の環境の中身をそのまま書き出すこともできます。
pip freeze > requirements.txtただし pip freeze は、自分が直接使っていない依存パッケージまで全部並べます。数十行になって、どれが本当に必要か分からなくなりがちです。実際に import しているものだけを手で書き、それ以外は pip に任せるほうが読めるファイルになります。
つまずきやすいところ
仮想環境を作らずに pip freeze すると、PC 全体に入っている無関係なパッケージまで混ざります。プロジェクトごとに仮想環境を作ってから作業します。
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtバージョンを固定しない書き方も注意が要ります。pandas とだけ書くと、インストールした日によって別のバージョンが入り、半年後に動かなくなります。動作を確認した時点のバージョンを == で止めておくと、後から原因を追えます。
似た用語との違い
| ファイル | 役割 |
|---|---|
requirements.txt | 必要なパッケージの一覧。pip が読む |
pyproject.toml | プロジェクト設定全般。新しい標準 |
package.json | Node.js 側で同じ役目を担うファイル |
新規に作るなら pyproject.toml を使う流れですが、公開されている多くの Python プロジェクトや入門記事はまだ requirements.txt を置いています。書けなくても、読める必要は当分あります。