如何在Python中重命名virtualenv?


73

virtualenv在使用以下代码初始化时,我拼错了名称:

$ virtualenv vnev

我实际上打算用名称创建环境venv。尝试将vnev文件夹重命名为时venv,我发现这没有太大帮助。激活环境的名称仍重命名旧的vnev

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

我想知道如何重命名环境?


您是否能够重命名或重新创建您的virtualenv?
安德鲁(Andrew)

@andrew不。Atleast,不是我想要的方式。我编写了一个脚本,将以前在错误环境中安装的所有软件包安装到新环境中。
Kshitij Saraogi '17

Answers:


136

默认情况下,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,该cpvirtualenv命令提供复制或重命名virtualenvs的命令。


是否有必要在删除旧的virtualenv之前将其停用?我没有,它仍然有效,只是好奇。谢谢。
比尔

1
@Bill我相信它是最佳做法,但不是必需的。这是virtualenv的停用脚本:github.com/pypa/virtualenv/blob/master/virtualenv_embedded/…–
andrew

1
我喜欢cpvirtualenv上的注释
RoyM

这是否也适用于使用pyenv创建的虚拟环境?
爱迪生

45

如果您使用virtualenvwrapper,则可以通过以下方式完成:

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

此外,仅供参考,要重命名conda虚拟环境,请查看此问题


cpvirutalenv似乎存在一个错误,尤其是〜/ <your_env_dir> / <your_env> /bin/pip,pip3.x是硬编码路径。通过cpvirtualenv完成的复制不会更新这些更新。易于修复,但没有它,标准操作(如pip冻结或uinstall)将无法工作
Drachenfels

0

我的答案类似于用旧的依赖关系创建一个新的虚拟环境,但是这个简洁。

  1. 使用conda将旧环境(例如venv_1)克隆到新环境(例如venv_2)。

    conda创建-n venv_2 --clone venv_1

这将创建一个新的环境venv_2克隆venv_1。因此,获取包/依赖项没有单独的任务。一步就足够了。

  1. 删除旧的虚拟环境。[如果您仍想保留旧环境,则此步骤是可选的]

    rm -rf“旧虚拟环境的完全限定路径”

因此,只需1/2步即可完成任务。


0

在其中,windows我可以通过activate.bat在内部进行编辑轻松地重命名虚拟环境scripts\

  1. 备份原始文件activate.bat(我复制并粘贴,然后重命名为mine BACKUP_activate.bat)。

  2. 右键单击并编辑activate.bat

  3. VIRTUAL_ENV变量从:

     set VIRTUAL_ENV=C:\some_dir\old_venv_name
    

    进入

     set VIRTUAL_ENV=C:\some_dir\new_venv_name
    
  4. PROMPT变量从:

     set PROMPT=(old_venv_name) %PROMPT%
    

    进入

     set PROMPT=(new_venv_name) %PROMPT%
    
  5. 保存编辑的批处理文件

注意:我的解决方案应该可以工作并保存windows users设置新的虚拟环境,我不具备任何知识脚本或在Linux或其他操作系统中的任何知识

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.