Django Webアプリを開発しているときに、virtualenvにインストールする必要のあるパッケージのリストがあります。言う:
Django==1.3.1
--extra-index-url=http://dist.pinaxproject.com/dev/
Pinax==0.9b1.dev10
git+git://github.com/pinax/pinax-theme-bootstrap.git@cff4f5bbe9f87f0c67ee9ada9aa8ae82978f9890
# and other packages
最初は、開発に沿って1つずつ手動でインストールしました。これにより、必要な依存関係がインストールされpip freeze
、アプリをデプロイする前に最終的に使用しました。
問題は、いくつかのパッケージをアップグレードしたため、一部の依存関係は使用も不要にもなりましたが、によってリストされ続けていることpip freeze
です。
ここで、次のように新しいvirtualenvを設定したいと思います。
- 必要なパッケージ(依存関係なし)を次の
ような要件ファイルに入れますmanual-requirements.txt
- それらを依存関係とともにインストールします
pip install -r manual-requirement.txt
(←問題、これは依存関係をインストールしません) - 完全なvirtualenv
pip freeze -r manual-requirements.txt > full-requirements.txt
をフリーズしてデプロイします。
依存関係を取得するために新しいvirtualenvにパッケージを手動で再インストールせずにこれを行う方法はありますか?これはエラーが発生しやすいので、不要になった古い依存関係からvirtualenvをクリーンアップするプロセスを自動化したいと思います。
編集:実際には、ドキュメントにそのようなファイルがフラットであると記載されている場合でも、pipは要件ファイルに明示的にリストされていない依存関係をインストールします。インストールする予定の依存関係について間違っていました。pipがすべての依存関係をインストールしていないことに疑問がある場合は、この質問をします。