用語集 最終更新 2026.08.09

requirements.txt

requirements.txt は、インストールしたい Python パッケージの一覧を書くテキストファイルです。 pip install -r requirements.txt で、そこに書かれたものをまとめて入れられます。

書き方でまったく意味が変わる

同じファイル名でも、バージョンの書き方によって性質が変わります。

書き方 意味 使いどころ
requests 最新版が入る 何が入るか毎回変わる。基本使わない
requests>=2.31 それ以上なら何でも ライブラリを配布する側
requests==2.31.0 この版だけ アプリケーション側

アプリを動かすためのファイルなら == で固定するのが原則です。固定していないと、数か月後に同じコマンドを打っても別のものが入り、原因不明の不具合になります。

pip freeze の出力をそのまま使わない方がよい理由

pip freeze > requirements.txt は手軽ですが、自分が直接使うライブラリと、その依存として入ってきたライブラリが混ざります。数か月後に「このライブラリはもう使っていないのか、誰かの依存なのか」が判別できなくなります。

現実的な運用は、直接使うものだけを手で書いたファイルと、pip freeze の結果を分けて持つことです。ここを最初から仕組みで解決したのが Poetryuv です。

完全な再現性は保証されない

== で固定しても、取得元の状態やビルド環境の差で結果が変わりうるため、ロックファイルほど厳密ではありません。ハッシュを併記して検証する方法もありますが、手作業では現実的ではありません。

なお 2025年3月に PEP 751 が Final となり、pylock.toml という共通のロックファイル形式が標準化されています。厳密な再現性が要るなら、そちらへ寄せるのが今後の流れです。 (出典:PEP 751

実務で見るポイント

  • 開発用の依存(テスト・整形ツール)は requirements-dev.txt に分けると本番が軽くなる
  • Docker のビルドでは、ソースより先に requirements.txt をコピーするとキャッシュが効く
  • 古い教材やサンプルではまだ主流。読む側としては理解しておく必要がある