多くのパッケージを含む既存のvirtualenvがありますが、古いバージョンのDjangoがあります。
私がやりたいのは、この環境を複製することです。そのため、まったく同じパッケージを使用しているが、Djangoのバージョンが新しい別の環境があります。これどうやってするの?
virtualenv -p /path/to/older/venv/bin/python new_venv
、その後requirements.txt
生成した環境を使用できますpip freeze
多くのパッケージを含む既存のvirtualenvがありますが、古いバージョンのDjangoがあります。
私がやりたいのは、この環境を複製することです。そのため、まったく同じパッケージを使用しているが、Djangoのバージョンが新しい別の環境があります。これどうやってするの?
virtualenv -p /path/to/older/venv/bin/python new_venv
、その後requirements.txt
生成した環境を使用できますpip freeze
回答:
最も簡単な方法は、pipを使用して要件ファイルを生成することです。要件ファイルは、基本的に、インストールするすべてのpythonパッケージ(またはpipで生成されたファイルの場合はすでにインストール済み)のリストとそれらのバージョンのバージョンを含むファイルです。
要件ファイルを生成するには、元のvirtualenvに移動して、次を実行します。
pip freeze > requirements.txt
これにより、requirements.txtファイルが生成されます。そのファイルをお好きなテキストエディタで開くと、次のように表示されます。
Django==1.3
Fabric==1.0.1
etc...
さて、編集という行Django==x.x
と言ってDjango==1.3
(または任意のバージョン、あなたの新しいvirtualenvの中にインストールしたいです)。
最後に、新しい virtualenvをアクティブにして実行します。
pip install -r requirements.txt
そして、pipは、requirements.txtファイルにリストされているすべてのpythonモジュールを、指定したバージョンで自動的にダウンロードしてインストールします。
Could not find a version that satisfies the requirement a_package=#.#.#
ます簡単に解決できますか?行を削除するか、等式を不等式に変更しました。
pyenv
だけでなく、。素晴らしい答え。
別のオプションは、virtualenv-clone
パッケージを使用することです:
再配置不可能なvirtualenvを複製するためのスクリプト。
virtualenv-clone
virtualenvをアクティブ化した後にインストールしたことを確認してください
virtualenvwrapper
virtualenvを複製するコマンドを提供します
cpvirtualenv ENVNAME [TARGETENVNAME]
最も簡単なオプションは、virtualenv-clone
パッケージを使用することです。
に複製venv1
するにはvenv2
、次の手順に従います。
またはダミーの仮想環境にインストールvirtualenv-clone
しvenv1
ますvenv_dummy
。作成するにはvenv_dummy
:
python -m virtualenv venv_dummy
source venv_dummy/bin/activate
インストールするにはvirtualenv-clone
:
(venv_dummy): pip install virtualenv-clone
複製venv1
するにはvenv2
:
(venv_dummy): virtualenv-clone venv1/ venv2/
bin/activate
この回答に従えば、編集する必要はありません。なぜ編集しなければならないのですbin/activate
か?
bin/activate
単純にできませんか: