2

たとえば、 と がpkg1必要なをインストールした可能性がpkg2ありpkg3ます。私がインストールした他のパッケージは、これら 2 つを必要としません。それで、中または後にpip uninstall pkg1、どうすればpipをアンインストールできpkg2ますpkg3か?

4

3 に答える 3

1

これを行うための簡単な組み込みコマンドや pip のフラグはありませんが、pkg1 をアンインストールする前に、依存関係を特定できます。

$ pip show pkg1 | grep Requires

少しの bash fu を使用して、パッケージ要件の概要をすばやく取得できます。

$ for P in $(pip list | awk '{print $1}') ; do echo -n $P::' '; pip show $P | grep Requires ; done

次に、最初のコマンドで表示されるパッケージ (pkg2 および pkg3) のいずれかについて、それらが 2 番目のコマンドで他のパッケージの依存関係として表示されない場合は、pip uninstallそれらも明示的に指定できます。

他のパッケージの依存関係ではないすべてのパッケージを見つけることもできます。

$ cat <(pip show $(pip list | awk '{print $1}') | grep Requires | sed -e s/Requires:// -e s/,//g | xargs -n 1) <(pip list | awk '{print $1}') | sort | uniq -u
于 2013-10-31T05:51:46.330 に答える
0

私はピップがこれを行うことができるとは思わない。

virtualenv にいる場合は、それを削除して新しいものに再インストールするだけです。

システムにいる場合は、pip ではなくディストリビューション パッケージ マネージャーを使用する必要があります。

于 2013-10-31T04:48:12.187 に答える
0

pip は他のパッケージが何に依存しているかを認識しないため、これを手動で行う必要がpkg2ありpkg3ます。

これを行う最善の方法は、仮想環境を使用することです。これにより、Python パッケージをシステム (ベース) Python から分離できます。

于 2013-10-31T04:51:48.193 に答える