1. ホーム
  2. python

[解決済み】pip-compileは何をするのですか?どのような使い道がありますか?

2022-01-31 02:14:21

質問

私はプログラミングとPythonの初心者です。pip-toolsのドキュメントにあるpip-compilesの定義を読みましたが、理解することができませんでした。どなたか説明していただけませんか? 具体的には、requirements.inをコンパイルしてrequirements.txtを生成するというのはどういう意味でしょうか?

どのように解決するのですか?

Pythonのコードが依存するすべてのパッケージのバージョンをロックダウンして requirements.txt ファイルを作成します。 このファイルには、あなたのコードが直接インポートする直接依存のバージョンだけでなく、同様にすべての推移的依存のバージョンも含めたい...つまり、直接依存のモジュール自身が依存しているモジュールのバージョンです。

そこで質問ですが、"requirements.txt"の内容をどのように管理するのでしょうか? 次のようにします。 pip freeze > requirements.txt しかし、これは厄介なことです。 アプリの直接の依存関係が何であるかの明確なリストではなく、作成時にたまたま環境にあったものに依存します。 本当に必要なのは、アプリの直接の依存関係をリストアップしたファイルと、それぞれの依存関係のバージョンを用意し、何らかの方法で適切な requirements.txt ファイルには、直接依存するものの正確なバージョンと、直接依存するものが必要とする推移的依存関係のバージョンとが含まれています。

この requirements.in ファイルと pip-compile を併用すると、このような望ましい動作になります。 で requirements.in で、アプリの直接の依存関係だけをリストアップします。 次に pip-compile を生成するために、そのファイル上で requirements.txt . コンパイルプロセスでは、あなたが望むものが生成されます。 requirements.in と、それらのモジュールの推移的依存関係。