requirements.txt・とは?初心者でも分かる使い方と読み解き方共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
requirements.txt・とは?初心者でも分かる使い方と読み解き方共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢: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] のように追加機能を指定する書き方

requirements.txtのおすすめ参考サイト


インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
14193viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2035viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
948viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
654viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
609viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
605viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
545viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
482viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
465viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
445viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
423viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
390viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
383viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
340viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
338viws
select句・とは?初心者でも分かるSQLの基本と使い方共起語・同意語・対義語も併せて解説!
332viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
323viws
ダイレクトチャットとは?初心者向けガイドで使い方と注意点を徹底解説共起語・同意語・対義語も併せて解説!
311viws
解像度スケールとは?初心者でも分かる解像度スケールの基礎と使い方共起語・同意語・対義語も併せて解説!
277viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
259viws

新着記事

インターネット・コンピュータの関連記事