requirements.txt で必須の Python パッケージを管理する
Python プロジェクトを他のユーザーと共有する場合、またはビルド システムを使用して Python アプリケーションを生成する場合は、必要な外部パッケージを指定する必要があります。 環境を復元する必要がある他の場所にプロジェクトをコピーする場合は、必要な依存パッケージも定義する必要があります。
外部の依存 Python パッケージを指定するには、要件ファイル (readthedocs.org) を使用することをお勧めします。 このファイルには、プロジェクトに必要なバージョンの依存パッケージをインストールする pip コマンドの一覧が含まれています。 最も一般的なコマンドは pip freeze > requirements.txt
です。 このコマンドは、環境の現在のパッケージ リストを requirements.txt
ファイルに記録します。
要件ファイルには、インストールされているすべてのパッケージの正確なバージョンが含まれています。 要件ファイルを使用して、環境の要件を固定できます。 正確なパッケージ バージョンを使用することで、自分の環境を別のコンピューターで簡単に再現できます。 パッケージのインストールが、バージョンの範囲を使用して、別のパッケージの依存関係として、または pip 以外のインストーラーを使用して行われた場合でも、それらは要件ファイルに含まれます。
前提条件
Python ワークロードをサポートする Visual Studio がインストールされていること。 詳細については、「Visual Studio での Python サポートのインストール」をご覧ください。
要件ファイル。 この記事の説明に従って、既存の要件ファイルを使用することも、ファイルを生成することもできます。
技術的には、任意のファイル名を使用して要件を追跡できます。 ただし、Visual Studio では、"requirements.txt" という名前の要件ファイルに対して特定のサポートが提供されます。パッケージをインストールするときに引数 -r <full path to file>
を使用して、ファイルの優先名を指定できます。
requirements.txt に一覧表示されている依存関係をインストールする
requirements.txt
ファイルを含むプロジェクトを読み込む場合は、ファイルに一覧表示されているすべてのパッケージ依存関係をインストールできます。
ソリューション エクスプローラーでプロジェクトを展開し、[Python 環境] ノードを展開します。
パッケージをインストールする環境ノードを見つけます。 ノードを右クリックし、[requirements.txt からインストール] を選択します。
[出力] ウィンドウでパッケージ インストール プロセスを監視できます。
出力には、インストールされている必要なパッケージと共に、影響を受ける pip コマンドに必要な更新プログラムと新しい pip バージョンの可用性が一覧表示されます。
仮想環境に依存関係をインストールする
既存の仮想環境に Python パッケージの依存関係をインストールすることもできます。
ソリューション エクスプローラーでプロジェクトを展開し、次に [Python 環境] ノードを展開します。
パッケージをインストールする仮想環境ノードを見つけます。 ノードを右クリックし、[requirements.txt からインストール] を選択します。
仮想環境を作成する必要がある場合は、「仮想環境を使用する」を参照してください。
requirements.txt ファイルを生成する
プロジェクトに必要なすべての Python パッケージが既に環境にインストールされている場合は、Visual Studio で requirements.txt
ファイルを生成できます。
ソリューション エクスプローラーでプロジェクトを展開し、次に [Python 環境] ノードを展開します。
要件ファイルを生成する環境ノードを見つけます。 ノードを右クリックし、[requirements.txt の生成] を選択します。
既存の requirements.txt ファイルにエントリを更新または追加する
requirements.txt
ファイルが既に存在する場合は、いくつかのオプションを含むプロンプトが Visual Studio に表示されます。
- [ファイル全体を置き換える]:
requirements.text
ファイルで定義されているすべての項目、コメント、およびオプションを上書きします。 - [既存のエントリを更新]: 現在インストールされているバージョンと一致するように、
requirements.text
ファイルのバージョン指定子を更新します。 - [エントリを更新および追加する]:
requirements.text
ファイルの既存の要件を更新し、すべての新しいパッケージ要件をファイルの末尾に追加します。
Visual Studio は pip
を実行して環境の現在のパッケージ要件を検出し、次に選択内容に基づいて requirements.txt
ファイルを更新します。
パッケージの依存関係を手動でインストールする
pip を使用して requirements.txt
ファイルに定義されているパッケージの依存関係をインストールしないと、インストール全体が失敗します。
この問題に対処するには、次の 2 つのオプションがあります。
requirements.txt
ファイルを手動で編集して失敗したパッケージを除外し、インストール プロセスを再度実行します。pip コマンドのオプション を使用して、パッケージのインストール可能なバージョンを参照します。
pip ホイールを使用して要件ファイルを更新する
pip wheel
コマンドを使用して依存関係をコンパイルする場合、--find-links <path>
オプションを requirements.txt
ファイルに追加できます。
pip wheel
コマンド呼び出して、必要な依存関係のリストをコンパイルします。pip wheel azure
出力には、収集されたパッケージ用に構築されたホイールが表示されます。
Downloading/unpacking azure Running setup.py (path:C:\Project\env\build\azure\setup.py) egg_info for package azure Building wheels for collected packages: azure Running setup.py bdist_wheel for azure Destination directory: c:\project\wheelhouse Successfully built azure Cleaning up...
find-links
およびno-index
オプションを、パッケージ バージョン要件と共にrequirements.txt
ファイルに追加します。type requirements.txt --find-links wheelhouse --no-index azure==0.8.0
更新された要件ファイルを使用して pip インストール プロセスを実行します。
pip install -r requirements.txt -v
出力は、インストール プロセスの進行状況を追跡します。
Downloading/unpacking azure==0.8.0 (from -r requirements.txt (line 3)) Local files found: C:/Project/wheelhouse/azure-0.8.0-py3-none-any.whl Installing collected packages: azure Successfully installed azure Cleaning up... Removing temporary dir C:\Project\env\build...