Python:明示的にインストールしたパッケージの一覧を取得する

仮想環境(venv)で明示的にインストールしたパッケージの一覧を取得したく、pip freeze を使ったのですが、依存でインストールされたパッケージまで含まれているもので欲しい一覧になりませんでした。

調べた所、pip-chill パッケージで欲しかった一覧が取れたのでメモしておきます。
※ 但し、手元の環境で試した限りは意図しない一覧になる場合もあったので注意が必要そうです。
 → 明示的にインストールしたものが依存先になっているパッケージをインストールしたとか。
  (例) numpy インストール後に pandas をインストールすると numpy が出なくなる。
   これぐらいなら良いんですが、別パターンで私には意図が読めない結果の場合もありました。

pip-chill のインストールは以下でOK。

pip install pip-chill

この後 pip-chill を実行すると以下のエラーが発生したので、pip install setuptools を実行しました。

ModuleNotFoundError: No module named 'pkg_resources'

そして、pip install pandas した後の pip freezepip-chill の違いは以下の通り。

$ pip freeze
numpy==1.26.4
pandas==2.2.2
pip-chill==1.0.3
python-dateutil==2.9.0.post0
pytz==2024.1
setuptools==69.2.0
six==1.16.0
tzdata==2024.1
$ pip-chill
pandas==2.2.2
pip-chill==1.0.3

コメント