win10-virtualenvwrapper虚拟环境迁移、克隆
1、问题描述
深度学习的torch环境极其脆弱,随意更改包的版本可能导致全面崩溃。开新坑时最好重新搭建一个虚拟环境。但配置torch环境十分复杂,本文将解决如何使用已有的环境作为模板建立一个新的环境。
2、系统和软件
python版本3.9.8
虚拟环境管理包vritualenv,virtualenvwrapper-win
3、解决办法
方法1:复制虚拟环境后更改路径。
①复制环境
首相将存在的虚拟环境复制一个副本,更改文件夹名称后作为新的虚拟环境。但此时打开新的虚拟环境,pip路径、python解释器路径均指向旧的环境,使用pip安装或卸载会导致原本的环境更改。

如图,venv2是将venv1复制之后改名的环境,进入venv2时由于内部的配置文件的路径还是venv1的路径,因此打开的环境还是venv1,此时的pip仍然为venv1的pip,安装也会安装到venv1中。
②更改路径
venv\pyvenv.cfg,venv\Scripts\activate,venv\Scripts\activate.bat三个文件需要修改。
首先修改pyvenv.cfg,使用conda安装的需要将其中的home修改为新的python路径。直接安装python的可以参考原环境中的路径,如果是python基础环境就不改了。
第二个修改activate,使用记事本打开,修改activate中的VIRTUAL_ENV指向新的venv
路径。
第三个修改activate.bat,将VIRTUAL_ENV指向新的venv2的路径
③重新安装pip
首先激活新venv,然后卸载新环境中的旧pip:
python -m pip uninstall pip
然后重新安装pip, 这个时候你可以选择去官网下载pip安装包进行,但是这样感觉有点太麻烦了,推荐直接使用如下命令安装:
python -m ensurepip --default-pip
方法二:先将python解释器中的标准库文件复制到新的路径,然后再复制所有软件包
①激活老环境,然后使用如下命令将Python解释器中的标准库文件复制到新的虚拟环境中:
python -m venv --copies 新路径
②直接复制老环境venv1下的venv1\Lib\site-packages文件夹到新环境venv2下的venv2\Lib\site-packages,建议将新环境下的venv2\Lib\site-packages删除再复制。
③将老环境venv1的script文件夹中所有文件复制到新环境venv2的script中,不要替换。