web-dev-qa-db-ja.com

Pythonでvirtualenvの名前を変更する方法は?

virtualenvの名前のスペルを間違えました。

$ virtualenv vnev

実際、venvという名前の環境を作成するつもりでした。 vnevフォルダーの名前をvenvに変更しようとしましたが、これはあまり役に立ちません。アクティブ化環境の名前は、古いvnevの名前を変更します。

$ mv vnev venv
$ . venv/bin/activate
(vnev) $ deactivate

環境の名前を変更する方法を知りたいですか?

48
Kshitij Saraogi

デフォルトでは、virtualenvは環境の名前変更をサポートしていません。 virtualenvディレクトリを削除して、正しい名前で新しいディレクトリを作成する方が安全です。これを行うには:

  1. Virtualenvをアクティブにします:source vnev/bin/activate
  2. 現在インストールされているパッケージのrequirements.txtを作成します:pip freeze > requirements.txt
  3. スペルミスのvirtualenvを削除します:rm -r vnev/
  4. 正しい名前で新しいvirtualenvを作成します:virtualenv venv
  5. 新しいvirtualenvをアクティブにします:source venv/bin/activate
  6. Requirements.txtからパッケージをインストールします:pip install -r requirements.txt

再作成がオプションではない場合、 virtualenv-mv のようなサードパーティのツールが役立ちます。

または、 virtualenvwrapper を使用して、virtualenvをコピーまたは名前変更するcpvirtualenvコマンドを提供できます。

95
andrew

virtualenvwrapper を使用する場合、これは次の方法で実行できます。

$ cpvirtualenv <wrong_name> <correct_name>
$ rmvirtualenv <wrong_name>

また、参考までに、condaの仮想環境の名前を変更するには、 この質問 を確認してください。

30
farenorth

私の答えは、古い環境の依存関係を持つ新しい仮想環境を作成することに似ていますが、これは簡潔です。

  1. Condaを使用して、古い環境(venv_1など)を新しい環境(venv_2など)に複製します。

    conda create -n venv_2 --clone venv_1

これにより、venv_1を複製する新しい環境venv_2が作成されます。したがって、パッケージ/依存関係を取得する個別のタスクはありません。シングルステップで十分です。

  1. 古い仮想環境を削除します。 [古い環境を維持したい場合、この手順はオプションです]

    rm -rf「古い仮想環境の完全修飾パス」

したがって、1/2ステップでタスクを達成できます。

0
ImNomad