pip-chillのススメ
pip freeze
で出力されるすべてをrequirements.txtに書く1のではなく、依存の一番外側のパッケージだけを出力したい事がある。そういうときにはpip-chillが便利。
実行例
例えば、fastapiを参考に以下の様なrequirements.txtを用意してみる。
requirements.txt
uvicorn fastapi
空のvenvを作ってpip installしてみる
$ python -m venv venv $ ./venv/bin/pip install -r requirements.txt
freeze
freezeの内容は以下
$ ./venv/bin/pip freeze asgiref==3.3.4 click==8.0.1 colorama==0.4.4 fastapi==0.65.2 h11==0.12.0 pip-chill==1.0.1 pydantic==1.8.2 starlette==0.14.2 typing-extensions==3.10.0.0 uvicorn==0.14.0
pip-chill
pip-chillを使うと依存の一番外側だけを出力してくれる。
$ ./venv/bin/pip install pip-chill $ ./venv/bin/pip-chill --no-chill fastapi==0.65.2 uvicorn==0.14.0
versionも削れる
$ ./venv/bin/pip-chill --no-chll --no-version fastapi uvicorn
pip install fastapi[dev]
した場合には以下の様に変わる
$ ./venv/bin/pip install fastapi[dev] $ ./venv/bin/pip-chill --no-chill asgiref==3.3.4 autoflake==1.4 bcrypt==3.2.0 colorama==0.4.4 cryptography==3.4.7 fastapi==0.65.2 flake8==3.9.2 graphene==2.1.8 passlib==1.7.4 python-dotenv==0.18.0 python-jose==3.3.0 pyyaml==5.4.1 uvicorn==0.13.4 watchgod==0.7 websockets==8.1
-
あるいはrequirements.lock↩