開発中に変更される pip 要件ファイルがあります。
pip
作ることができるアンインストール要件ファイルに表示されないパッケージと、表示されるパッケージをインストールしますか? 標準的な方法はありますか?
これにより、pip 要件ファイルをパッケージの正規リストにすることができます (「if and only if」アプローチ)。
アップデート: 私はこれを新機能として提案しましたpypa の最新バージョンは pypa.py にあります。
ベストアンサー1
これにより、requirements.txt に含まれていないものがすべてアンインストールされます。
pip freeze | grep -v -f requirements.txt - | grep -v '^#' | xargs pip uninstall -y
-e
ただし、これは でインストールされたパッケージ、つまり git リポジトリなどでは正しく動作しません。これらをスキップするには、-e
フラグで始まるパッケージを除外するだけです。
pip freeze | grep -v -f requirements.txt - | grep -v '^#' | grep -v '^-e ' | xargs pip uninstall -y
すると、当然のことですが:
pip install -r requirements.txt
2016 年の更新:ただし、実際には上記のアプローチを使用する必要はないでしょう。チェックアウトしpip-tools
てpip-sync
これにより、おそらくあなたがやりたいことを、はるかに堅牢な方法で実現できます。
https://github.com/nvie/pip-tools
2016 年 5 月の更新:
も使用できるようになりましたpip uninstall -r requirements.txt
が、これは基本的に逆のことを行います。つまり、requirements.txt
2019 年 5 月の更新:
チェックアウトパイプまたは詩パッケージ管理の世界では多くのことが起こり、この種の質問は時代遅れになっています。しかし、私は実のところ、今でも pip-tools をとても気に入って使っています。