私は自分のDjangoプロジェクトのために、virtualenvの中で要件ファイル付きのpipを使っています。私はいくつかのパッケージ、特にDjango自身をアップグレードしようとしています、そして私はソースコードの衝突に関するエラーを得ています:
Source in `<virtualenv`>/build/Django has version 1.2.3 that conflicts with Django==1.2.4 (from -r requirements/apps.txt (line 3))
要件ファイルでDjangoのバージョン番号を1.2.3から1.2.4に更新した後です。私は実際にアップグレードをするためにこのコマンドを使っています:
pip --install --upgrade -E `<virtualenv dir`> --requirement `<requirements file`>
トータルパッケージの再ダウンロードを引き起こすフラグを見つけることができません。最初にアンインストールコマンドを実行し、次にインストールを実行しましたが、サイコロを実行しませんでした。多分私は何かが足りない?
それがあなたの問題なのかどうかは定かではありませんが、私の場合は、Djangoを1.2.4にアップグレードすることができませんでした。
<virtualenv>/bin/pip uninstall Django
それから私は<virtualenv>/build/Django
ディレクトリを削除して、そして最後に私は正しいバージョンをインストールしました:
<virtualenv>/bin/pip install Django
これが役立つことを願っています。
次のコマンドを実行したところ、1.2.3から1.4.0にアップグレードされました。
pip install Django --upgrade
アップグレードのショートカット
pip install Django -U
注 :アップグレードしようとしているパッケージに何らかの要件がある場合、このコマンドはすべての要件を利用可能な最新バージョンにさらにアップグレードします。最近のバージョンのpipでは、 --upgrade-strategy only-if-needed
を指定することでこの動作を防ぐことができます。このフラグを使用すると、インストールされている依存パッケージのバージョンがアップグレードされたパッケージの要件を満たさなくなるまで、依存関係はアップグレードされません。
pip docs example 3に従って
pip install --upgrade Django
しかし、私の経験に基づいて、この方法を使用するとそれに関連するパッケージもアップグレードされます。例:
この種の方法を使用してDjango >= 1.2.4
を必要とするsomepackage
をアップグレードしたいとすると、somepackage
およびDjango
も最新のアップデートにアップグレードされます。安全のために
# assume you want to keep Django 1.2.4
pip install --upgrade somepackage Django==1.2.4
こうするとsomepackage
がアップグレードされ、Djangoは1.2.4バージョンに保たれます
--upgrade
のショートカットコマンド:
pip install Django --upgrade
です:
pip install Django -U
somepackage
と呼ばれる特定のパッケージを1つだけアップグレードしたい場合は、最近のバージョンのpipで使用すべきコマンドは次のとおりです。
pip install --upgrade --upgrade-strategy only-if-needed somepackage
これは、現在Djangoの特定のバージョン(Django = 1.9.xなど)でしか動作せず、依存パッケージをバグ修正/新機能でアップグレードするアプリケーションをDjangoで開発した場合に非常に便利です。 Djangoで(しかし1.5以降のDjangoのどのバージョンでも動作します) pip install --upgrade Django-some-package
のデフォルトの振る舞いはDjangoを利用可能な最新版にアップグレードすることです。そうしなければあなたのアプリケーションを壊すかもしれませんが、--upgrade-strategy only-if-needed
依存パッケージでは必要に応じてのみアップグレードされます。
パッケージをアップグレードすると、古いパッケージはアンインストールされます。
これを行う便利な方法は、 pip-upgrader を使用することです。これにより、選択したパッケージ(またはすべてのパッケージ)のrequirements.txt
ファイルのバージョンも更新されます。
インストール
pip install pip-upgrader
使用方法
あなたのvirtualenvをアクティブにしてください(それは現在のvirtualenvにアップグレードされたパッケージの新しいバージョンもインストールするので重要です)。
cd
をあなたのプロジェクトディレクトリに入れてから、以下を実行してください。
pip-upgrade
高度な使い方
要件が標準以外の場所に配置されている場合は、それらを引数として送信します。
pip-upgrade path/to/requirements.txt
どのパッケージをアップグレードしたいのかすでにわかっているのなら、単にそれらを引数として送ってください:
pip-upgrade -p Django -p celery -p dateutil
プレリリース版またはポストリリース版にアップグレードする必要がある場合は、コマンドに--prerelease
引数を追加してください。
完全な開示:私はこのパッケージを書きました。それが役に立てば幸い。
通常、pipはそれ自身の後で片付けを行い、ビルドディレクトリの内容を削除します。これが行われないのは、次の場合だけです。
--no-install
オプションを使用しました他のすべての場合では、あなたの環境を詰まらせるbuild
ディレクトリを持つべきではありません。
「pip install -I --upgrade psutil --force」という問題を解決した後、psutilを新しいバージョンでアンインストールして、古いバージョンを突然インストールできるようにします(: