開発者ツール

requirements.txt解析と整理

依存パッケージの宣言を読み取り、選択したグループを確認して書き出します。

requirements.txt

依存ファイルの入力

選択グループの結果

テキストはブラウザー内で処理します。パッケージ照会、URL取得、アップロードは行いません。

形式と抽出範囲

pyproject.tomlではproject.dependencies、project.optional-dependencies、build-system.requiresのみ抽出します。その他の依存テーブルは対象外です。

UTF-8で100 KiB・依存1000件・宣言4096文字まで。マーカーは評価しません。

入力または設定が変わりました。再解析してから書き出してください。

requirementsファイルをマージすると、同じパッケージが何行も現れることがあります。ただし、extrasや対象環境が違えば、名前が同じでも削除してよいとは限りません。

requirements.txtの各行をフィールドに分けて確認できます。pyproject.tomlでは標準の依存関係をグループごとに取り出し、ビルド設定全体を書き換えずに比較できます。

requirements.txtをここで確認する理由

依存先の名前だけでなく、条件と所属も確認。

環境条件を切り離さない

名前、extras、バージョン指定、URL、環境マーカーを別々のフィールドで表示し、元の宣言も残します。ブラウザーのOSを理由に依存を除外することはありません。

一つの依存宣言が複数のフィールドに分かれ、条件が結び付いたまま残る図

同じ名前でも別の宣言は残す

requirements.txtの整理では完全一致した宣言だけを削除します。プレビューで削除数と並び替わる数を確認でき、TOMLの実行時・追加機能・ビルド用グループも混ぜません。

同一の依存カード二枚が一枚になり、条件の異なるカードは残る図

書き出す前に確認する三つの点

01

形式変更と入力置換を区別する

形式を切り替えても入力はそのままです。対応するサンプルを読み込む場合は置換プレビューを確認してください。適用後は一度元に戻せます。

02

空の実行時グループを確認する

最初に表示するのはproject.dependenciesです。空でもビルド用へ自動で切り替えません。追加機能やbuild-system.requiresは明示的に選びます。

03

結果の更新タイミングを知る

自動解析は編集停止から350 ms後に実行します。オフにするとボタンかCtrl/Cmd + Enterで実行でき、入力や設定が変わると書き出しが無効になります。

宣言を読み解くための表示

構造化された依存情報

元の名前と正規化名、extras、バージョン指定、環境マーカー、直接参照、元の位置をJSONで確認できます。バージョン表記は調べますが、候補バージョンが範囲に入るかは判定しません。

TOMLと依存フィールドの確認

文書全体をTOML 1.0として解析します。対応する依存フィールドは文字列配列である必要があり、不正な宣言はその文字列の位置を示します。各toolテーブルのschemaまでは検証しません。

表示件数と書き出し件数を分離

画面には50件ずつ表示します。コピーとダウンロードには選択したグループ全件が入り、JSONには所属と構造化情報、TXTには一行ずつの宣言が入ります。

対応する構文と処理の範囲

インストール可能性は判定しない
PyPI照会、パッケージのインストール、間接依存の解決、競合修正、脆弱性やライセンス分析は行いません。構文が正しくても対象環境で同時にインストールできるとは限りません。
pipの構文すべてには対応しない
一行に一つの名前付きPEP 508宣言を指定します。空行とpip形式のコメントは無視します。-r、-c、-e、インデックス、hash、裸のパス、行継続、環境変数展開は明示的に拒否します。
マーカーは構文確認のみ
通常の変数とextra、比較、括弧、and/orに対応します。ロックファイル専用のextrasとdependency_groupsは非対応です。マーカーの評価やURLへのアクセスは行いません。
標準の依存フィールドだけを抽出
project.dependencies、project.optional-dependencies、build-system.requiresが対象です。動的依存はエラーにし、Poetryやdependency-groupsは抽出しません。追加機能名は小文字・数字・単一ハイフンに限定します。
元のファイルは書き換えない
正規化した名前と元の宣言でソートし、同じグループ内で前後空白を除いた全文が一致する宣言だけを重複とみなします。コメントは入力に残り、出力には入りません。再解析すると整理前の結果に戻ります。
上限超過とエラーは全体を停止
入力はUTF-8で100 KiB、依存は1000件、宣言一つは4096文字、マーカーの括弧は32段までです。対応フィールドに誤りがあれば、文書全体の書き出しを止めます。

requirements.txtのよくある質問

pipのrequirementsファイルにコメントを追加できますか?

追加できます。#で始まる行と、空白に続く#以降はコメントとして扱います。空白を挟まないURLの#フラグメントはURLに残ります。コメントは元の入力に残りますが、抽出した依存一覧には含めません。

requirements.txtでPythonのバージョンごとに依存関係を指定できますか?

できます。例えばimportlib-metadata; python_version < "3.10"です。ここではマーカーの構文を確認して保存し、対象のPython環境で必要かどうかはインストーラーに任せます。

pyproject.tomlを使う場合もrequirements.txtは必要ですか?

運用次第です。プロジェクト依存をpyproject.tomlに置いても、requirements.txtをインストーラー入力や環境の一覧として使うことがあります。本ツールは指定した標準グループを抽出するもので、解決済みロックファイルを生成するものではありません。

requirements.txtで複数のバージョンを許可できますか?

package>=1,<2のような範囲や環境別の宣言を記述できます。異なる制約は重複削除の対象になりません。同じ名前を複数行に書いても自動的な選択肢にはならず、競合する可能性があります。

パッケージのバージョン競合を解決するには?

対象環境のパッケージ管理ツールで、両立しない制約を調べる必要があります。この画面では宣言と条件を確認できますが、インストール可能な組み合わせは計算しません。完全一致の重複を消しても制約の矛盾は解決しません。

予想と違う結果ですか?

選択したグループを確認

requirements.txtの解析画面に戻り、対象グループの条件と整理結果を確認してから次の作業に使ってください。