スーパーユーザー環境のすべての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
はこの動作を保証していないようです(つまり、システムサイトパッケージに既に存在するパッケージの同じバージョンをインストールする)。
pipバージョン7.1.2以降では、pip uninstall -y <python package>
Pipには--yesオプションは含まれていません(pipバージョン1.3.1以降)。
回避策:パイプでyes!
$ Sudo ls # enter pw so not prompted again
$ /usr/bin/yes | Sudo pip uninstall pymongo
requirements.txt
からすべてのパッケージをアンインストールする場合、
pip uninstall -y -r requirements.txt
ラクシュマン・プラサドは正しかった、pip --upgrade
および/またはvirtualenv --no-site-packages
は進むべき道です。システム全体のアンインストールpythonモジュールは悪いです。
--upgrade
オプションは、必要なモジュールがシステム環境に既に存在している場合でも、必要なバージョンまたは利用可能な最新バージョンがシステムバージョンと同じであっても、仮想envに必要なモジュールをインストールします。
pip --upgrade install
また、仮想環境を作成するときに--no-site-packagesオプションを使用すると、システムパスに欠落しているモジュールが存在することで、欠落している依存関係をマスクできない可能性があります。これは、あるパッケージから別のパッケージへのモジュールの移行中に問題を明らかにするのに役立ちます。 pinax.apps.groups-> Django-groups、特にDjango内のtemplatetagsディレクトリとタグ定義のすべての使用可能なモジュールを検索するtemplatetagsステートメントのロードに問題がある場合。
または、システムpythonモジュールに依存して依存関係を満たすのではなく、pipにvirtualenvへのすべての依存関係を強制的にインストールする方が良いでしょうか、
はい。組み込みのシステムにインストールされたパッケージを過度に混乱させないでください。特にOS Xのシステムパッケージの多くは(debianや派生したものでさえ)それらに依存しすぎています。
pip --upgrade install。ただし、システムモジュールをオーバーライドするために、同等の古いバージョンを強制的にインストールします。
特に異なるバージョンのものである場合、システムパッケージにすでに存在するいくつかのパッケージがvenv内にインストールされている場合、それは大した問題ではありません。それがvirtualenvのポイントです。
Virtualenvをアクティブにしてからpip install --upgrade -r requirements.txtを実行すると、システムパスに存在するものも含めて依存関係がインストールされるようですが、システムモジュールが古いためかどうかはわかりません。そして、man pipはこの動作を保証しているようには見えません(つまり、システムサイトパッケージに既に存在するパッケージの同じバージョンをインストールする)。
いいえ、--no-site-packages
フラグを使用して作成するか、必要なバージョンと現在のバージョンが異なる場合を除いて、メインインストールに既にパッケージがインストールされていません。
pip install -U xxxx
確認をバイパスできます