0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

なぜpip freezeすると余計なものまで出力されるの?

Last updated at Posted at 2025-03-21

簡単に言うと:

pip freeze は「インストールされたすべてのパッケージ(依存含む)」を出力するからです。

✅ 詳しく解説

🎯 requirements.txt に書いた内容

pandas
streamlit
azure-cosmos
...

これは 直接使いたいライブラリ(トップレベルの依存) です。

💡 一方で pip freeze が出力するのは…

aiohttp==3.9.3
altair==5.5.0
attrs==23.1.0
blinker==1.6.2
cachetools==5.3.1
...

これは:

  • 直接指定したパッケージ
  • 内部的に依存している サブパッケージ(依存関係)すべて

を出力しているんです。

✅ 例:streamlit の依存

たとえば、あなたが streamlit を入れただけでも、以下のようなパッケージが自動でインストールされます:

altair
blinker
cachetools
click
protobuf
pyarrow
pympler
...

これは streamlit 自体が setup.py に「これが必要です」と書いてあるから、pipが勝手に入れてくれるわけです。


pip freeze > requirements.txt はロックファイルとして扱う(本番向け)

このやり方は本来、本番環境でまったく同じバージョンを再現したいとき用です。

  • ❌ 開発用に使うとパッケージが膨れ上がる
  • ✅ 再現性はバツグン

✅ まとめ

行動 結果 よくある用途
pip freeze > requirements.txt すべてのパッケージとそのバージョンが出力される デプロイ/本番環境の再現
手書きで管理 トップレベルの依存だけ記載 管理は楽だが漏れに注意

なので、pip freeze で余計なものまで出力されてるのは全く正常な挙動なのです

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?