

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
requirements.txt・とは?
このファイルはPythonのプログラムを動かすために必要な外部の部品を、一行ずつリストしたテキストファイルです。要するにそのプログラムが動くための依存関係をまとめた名札のようなもので、他の人が同じ環境を作るときに役立ちます。
多くのプログラムは「この部品が必要だよ」といった部品の集合でできています。requirements.txt を用意しておくと、動作に必要な部品とそのバージョンを1つのファイルで管理できます。これにより、別の人が同じ環境を再現するのが格段に楽になります。
基本的な仕組み
requirements.txt の中身は1行につき1つの部品名と バージョン指定 を書くのが基本です。代表的な記述には次のようなものがあります。
requests==2.28.1
numpy>=1.20
このように 固定バージョン か 範囲指定 で記述します。バージョンを省略すると最新バージョンが入ってしまい、動作が変わるリスクが高まります。
使い方の流れ
実務では以下の流れで使うのが一般的です。適切な仮想環境を用意する → requirements.txt に書かれた部品を入れる → プログラムを実行して動作を確認する、という順序です。
1) 依存関係を新しい環境で復元する場合には、コマンド pip install -r requirements.txt を実行します。これでファイルに書かれた部品とバージョンがそろいます。
2) 新しいプロジェクトを始めるときは、まず仮想環境を作り、その仮想環境の中で pip install -r requirements.txt を走らせて依存関係を揃えます。これにより、他のプロジェクトと部品が混ざらず安定します。
注意点とコツ
仮想環境を使うことがとても大切です。仮想環境は「そのプロジェクト用の別のPython環境」を作る道具で、他のプロジェクトの影響を受けません。
バージョンの管理は慎重に。特に大規模なシステムでは、最新のバージョンが必ずしも良いとは限りません。テストしてから使うのが安心です。
また プロジェクトごとに requirements.txt を作ると、誰が作っても同じ部品で動くようになります。共有する際はリポジトリに含めるのが一般的です。
実用のヒント
新しいパッケージを追加したら、必ず requirements.txt に追記 してからコミットしましょう。古いバージョンを使っていると、将来のアップデートで動かなくなることがあります。
参考表
| ファイル名 | 役割 | 例 |
|---|---|---|
| requirements.txt | 依存するパッケージとそのバージョンを列挙 | requests==2.28.1 |
この表を見てもらうと、どんな情報が入っているのかが一目でわかります。要点は「依存関係を1つのファイルで管理すること」と「再現性を高めること」です。
まとめとして、requirements.txt はPythonプロジェクトの“依存関係の名札”のようなものです。正しく使えば、他の人の環境で同じ動作を再現でき、バージョンの違いによるトラブルを減らすことができます。
requirements.txtの同意語
- 依存関係ファイル
- Python プロジェクトで、実行に必要なライブラリとそのバージョンを列挙したファイル。通常は requirements.txt に保存され、pip で一括インストールが可能です。
- 依存関係リストファイル
- 依存するライブラリの一覧をまとめたファイル。要件を満たすためのパッケージ名とバージョンを記したものです。
- 依存パッケージ一覧
- プロジェクトが依存しているパッケージの名前とバージョンの一覧(ファイルとして保存されることもあります)。
- 必要パッケージ一覧
- 実行に必須のパッケージ群を示す一覧。通常は最小限の依存を指します。
- パッケージ依存性ファイル
- パッケージの依存関係を記述するファイル。どのパッケージがどのパッケージに依存しているかを表します。
- パッケージ依存関係ファイル
- 依存関係を管理するためのファイル。パッケージ同士の結びつきを明示します。
- 依存関係リスト
- 依存しているライブラリの一覧。ファイル形式に限らず、概念を指す語として使われます。
- Python 依存関係ファイル
- Python プロジェクトの依存関係を記述したファイル。公式には通常 requirements.txt が代表例です。
- Python 要求ファイル
- Python のパッケージ要求を列挙したファイル。要件を満たすパッケージを指定します。
- 要求ファイル
- パッケージの要求を整理したファイル。Python では requirements.txt に近い意味で使われることがあります。
- 要求パッケージ一覧
- 要求されるパッケージの一覧。名称とバージョンの組み合わせを示します。
- 要求事項ファイル
- 依存関係の「要件」をまとめたファイル。誰が読んでも要件が分かるよう記述します。
- 要求パッケージリスト
- 要求されているパッケージのリスト。プロジェクトの実行に必要なパッケージを列挙します。
- パッケージの依存性リスト
- パッケージがどの他パッケージに依存しているかを示す一覧。依存性の関係を追いやすくします。
- 依存性ファイル
- 依存関係を記述したファイル。短く言うと、どのパッケージが必要かを示す情報源です。
requirements.txtの対義語・反対語
- no-requirements.txt
- 要件が一切記載されていないファイル。必須の依存関係や条件が存在しない状態を示します。
- no_dependencies.txt
- 依存関係が記載されていないファイル。外部ライブラリや他のパッケージへの依存を示さない状態です。
- optional_requirements.txt
- 必須ではなく任意の依存関係を列挙するファイル。インストール時に必ずしも適用されない依存を示します。
- dependencies-free.txt
- 依存関係ゼロを強調するファイル。外部依存は全く記述されていない状態を指します。
- exclude_requirements.txt
- 要件を除外するファイル。特定の要件を適用対象から外す条件を示します。
- ignore_requirements.txt
- 要件を無視するファイル。依存関係のルールを適用しない設定を表します。
- free_form_requirements.txt
- 要件を自由形式で記述するファイル。厳密なフォーマットに縛られず、自由に書ける対極です。
- bare_minimum_setup.txt
- 最小限のセットアップを説明するファイル。必要な要件を極力減らした、最低限の構成を示します。
- reference_only.txt
- 参照のみを提示するファイル。実際の依存関係は記述せず、参考情報としての内容だけを含みます。
- manual_entries.txt
- 手動エントリのみを含むファイル。自動解決ではなく、手作業での記載を優先する対極です。
requirements.txtの共起語
- pip
- Pythonのパッケージを管理する主なツール。requirements.txtはこのpipで依存関係をまとめて一括インストールする用途が一般的です。
- PyPI
- Pythonの公式パッケージリポジトリ。requirements.txtに列挙したパッケージは通常PyPIからダウンロードされます。
- バージョン固定
- 特定のバージョンを固定して環境の再現性を高める考え方。requirements.txtでは package==1.2.3 のように厳密に指定します。
- バージョン指定子
- パッケージの許容範囲を指定する文字列。==, >=, <=, ~= などがあり、依存関係の解決に影響します。
- 仮想環境
- プロジェクトごとに依存関係を分離する仕組み。venvやvirtualenvを使ってグローバル環境への影響を避けます。
- pip-tools
- requirements.in から requirements.txt を自動生成するツール群。依存関係の固定化を楽にします。
- pip-compile
- pip-tools のコマンドの一つ。requirements.in から固定済みの requirements.txt を作成します。
- requirements-dev.txt
- 開発用の依存関係を分けて管理するファイル。テストや lint などのツールを含めるのが一般的です。
- pyproject.toml
- 新しいビルド設定ファイル。プロジェクトの依存関係やビルド設定を一元管理する目的で使われます。
- setup.py
- 従来のパッケージ構成ファイル。近年は pyproject.toml へ移行する流れですが、依然として使われるケースがあります。
- Docker
- コンテナ化で依存関係を固定する際、Dockerイメージ構築時に requirements.txt を使うことが多いです。
- Dockerfile
- Dockerイメージを作る設定ファイル。COPY で requirements.txt を取り込み、RUN pip install -r requirements.txt のように依存関係をインストールします。
- constraints.txt
- 依存関係の制約を別ファイルで固定する方法。pip install -c constraints.txt のように使用します。
- GitリポジトリURL
- requirements.txt から直接 Git リポジトリのパッケージを取得する指定。git+https://github.com/… の形で記述します。
- ハッシュ検証
- パッケージの整合性を検証するため、ハッシュ値を requirements.txt に記述してインストール時に検証することがあります。
- 書式
- 各行はパッケージ名とバージョン指定、またはソースを記述します。コメント行は # で始まります。
- コメント行
- # から始まる行はコメントとして無視され、ファイルの説明やメモを記述します。
- requirements.in
- pip-tools で使われる入力ファイル。ここに書いた依存関係を元に requirements.txt が生成されます。
- wheel
- Python のパッケージ配布形式の一つ。ビルド済みの wheel を使うことでインストールを速くすることが多いです。
requirements.txtの関連用語
- requirements.txt
- Python プロジェクトの依存ライブラリを列挙するテキストファイル。pip install -r requirements.txt で一括インストールします。
- pip
- Python の公式パッケージ管理ツール。PyPI からパッケージを取得してインストールします。
- virtualenv
- 仮想環境を作成するツール。プロジェクトごとに依存を分離できます。
- venv
- Python 標準の仮想環境作成機能。
- pip install -r
- requirements.txt の内容を読み込み、依存ライブラリをインストールします。
- requirements.in
- pip-tools などで使う入力ファイル。未固定の依存を列挙します。
- requirements-dev.txt
- 開発用の依存をまとめたファイル。テストやデバッグに必要なものを含めることが多いです。
- pyproject.toml
- 現代的なビルド設定ファイル。ビルドツールや依存管理ツールの設定を集約します。
- setup.py
- 従来のパッケージ設定スクリプト。現在はリプレースされつつあるがまだ使われます。
- pip-tools
- requirements.txt の固定版を作るためのツール群。
- pip-compile
- pip-tools のコマンド。requirements.in から pinned な requirements.txt を生成します。
- pipreqs
- コードの import から依存を自動推定して requirements.txt を作成するツールです。
- constraints.txt
- 依存のバージョン制約を別ファイルで管理する方法。-c で適用します。
- -c constraints.txt
- pip に制約ファイルを適用してバージョンの範囲を固定します。
- --find-links
- パッケージの検索先を追加するオプション。ローカルディレクトリやウェブを指定します。
- --index-url
- デフォルトの PyPI 以外のインデックスを指定します。
- --extra-index-url
- 追加のインデックス URL を指定します。
- --no-index
- インデックス検索を行わず、ローカルファイルのみからインストールします。
- -e
- editable install の略。ソースを直接編集できる状態でインストールします。
- editable install
- 編集可能インストール。開発中のパッケージに適用します。
- direct URL dependencies
- リポジトリの URL から直接依存を取得してインストールします。
- environment markers
- 依存を OS や Python バージョンなどの条件で分岐させる表記。例: package; python_version<'3.8'。
- extras
- パッケージの追加機能を [extras] 形式で指定します。
- version specifiers
- 依存のバージョン範囲を指定する記法。==, >=, <=, >, <, ~= などが使われます。
- PEP 440
- Python のバージョン指定と依存解決の公式仕様。
- PEP 508
- 依存情報の加筆・URL 要件・環境マーカー等の表記仕様。
- --require-hashes
- 全ての依存に対してハッシュを検証することを強制するオプション。
- --hash
- 個別の依存に対してハッシュ値を指定する構文。
- sha256
- SHA-256 ハッシュ値を使って依存の整合性を検証します。
- pinned version
- 依存の厳密なバージョンを固定(例 package==1.2.3)します。
- transitive dependencies
- 依存関係の依存、つまり二次的な依存関係。
- dependency resolution
- pip が依存関係を解決して適切なバージョンを決定する過程。
- wheel
- Python パッケージのバイナリ配布形式。インストールを速くします。
- sdist
- ソース配布形式。ソースコードを配布します。
- local path dependencies
- ローカルのファイルパスから依存を取得してインストールします。
- VCS dependencies
- Git などのバージョン管理システムから依存を取得します。
- upgrade
- 依存を最新バージョンへ更新します(--upgrade)。
- no-deps
- 依存パッケージをインストールしないオプション。
- pip cache
- ダウンロードしたパッケージをキャッシュして次回のインストールを速くします。
- offline install
- ネットワーク接続なしで既存キャッシュやローカルファイルのみからインストールします。
- production vs development
- 本番用と開発用の依存を分けて管理する考え方。
- Poetry
- pyproject.toml ベースのモダンなパッケージ管理ツール。依存とロックを管理します。
- Pipfile/Pipfile.lock
- Pipenv の設定ファイルとロックファイル。
- Pipfile
- Pipenv の依存管理設定ファイル。
- URL requirements syntax
- URL 形式の依存を記述する書式。例: package @ git+https://…
- environment markers syntax
- 条件表現の書き方。例: package; python_version<'3.8'>
- extras syntax
- package[extra] のように追加機能を指定する書き方。



















