web-dev-qa-db-ja.com

PIPアンインストールの確認プロンプトのバイパス

スーパーユーザー環境のすべてのDjangoパッケージをアンインストールして、すべてのwebapp依存関係がvirtualenvにインストールされるようにします。

Sudo su
Sudo pip freeze | grep -E '^Django-' | xargs pip -q uninstall

しかし、pipはすべてのパッケージのアンインストールを確認したいと考えており、pipには-yオプションがないようです。 pythonモジュールのバッチをアンインストールするより良い方法はありますか? rm -rf .../site-packages/は適切な方法ですか? easy_installの代替手段はありますか?

または、システムpythonモジュールに依存してそれらの依存関係を満たすのではなく、pipにvirtualenvへのすべての依存関係を強制的にインストールする方が良いでしょうか。 pip --upgrade installが、システムモジュールをオーバーライドするために同等に古いバージョンを強制的にインストールする私はvirtualenvをアクティブにしてからpip install --upgrade -r requirements.txtをアクティブにしようとしましたが、システムパスに存在するものも含めて依存関係がインストールされるようですが、システムモジュールが古いためかどうかはわかりません。そして、man pipはこの動作を保証していないようです(つまり、システムサイトパッケージに既に存在するパッケージの同じバージョンをインストールする)。

64
hobs

pipバージョン7.1.2以降では、pip uninstall -y <python package>

137
gbozee

Pipには--yesオプションは含まれていません(pipバージョン1.3.1以降)。

回避策:パイプでyes!

$ Sudo ls  # enter pw so not prompted again
$ /usr/bin/yes | Sudo pip uninstall pymongo
60
Kevin J. Rice

requirements.txtからすべてのパッケージをアンインストールする場合、

pip uninstall -y -r requirements.txt
5
akilesh raj

ラクシュマン・プラサドは正しかった、pip --upgradeおよび/またはvirtualenv --no-site-packagesは進むべき道です。システム全体のアンインストールpythonモジュールは悪いです。

--upgradeオプションは、必要なモジュールがシステム環境に既に存在している場合でも、必要なバージョンまたは利用可能な最新バージョンがシステムバージョンと同じであっても、仮想envに必要なモジュールをインストールします。

pip --upgrade install

また、仮想環境を作成するときに--no-site-packagesオプションを使用すると、システムパスに欠落しているモジュールが存在することで、欠落している依存関係をマスクできない可能性があります。これは、あるパッケージから別のパッケージへのモジュールの移行中に問題を明らかにするのに役立ちます。 pinax.apps.groups-> Django-groups、特にDjango内のtemplatetagsディレクトリとタグ定義のすべての使用可能なモジュールを検索するtemplatetagsステートメントのロードに問題がある場合。

1
hobs

または、システムpythonモジュールに依存して依存関係を満たすのではなく、pipにvirtualenvへのすべての依存関係を強制的にインストールする方が良いでしょうか、

はい。組み込みのシステムにインストールされたパッケージを過度に混乱させないでください。特にOS Xのシステムパッケージの多くは(debianや派生したものでさえ)それらに依存しすぎています。

pip --upgrade install。ただし、システムモジュールをオーバーライドするために、同等の古いバージョンを強制的にインストールします。

特に異なるバージョンのものである場合、システムパッケージにすでに存在するいくつかのパッケージがvenv内にインストールされている場合、それは大した問題ではありません。それがvirtualenvのポイントです。

Virtualenvをアクティブにしてからpip install --upgrade -r requirements.txtを実行すると、システムパスに存在するものも含めて依存関係がインストールされるようですが、システムモジュールが古いためかどうかはわかりません。そして、man pipはこの動作を保証しているようには見えません(つまり、システムサイトパッケージに既に存在するパッケージの同じバージョンをインストールする)。

いいえ、--no-site-packagesフラグを使用して作成するか、必要なバージョンと現在のバージョンが異なる場合を除いて、メインインストールに既にパッケージがインストールされていません。

1
Lakshman Prasad
pip install -U xxxx 

確認をバイパスできます

0
Prime Lee