首页 python环境复制
文章
取消

python环境复制

Python venv创建的虚拟环境复制到其他路径,如何断开与原始虚拟环境的连接,成为一个全新的虚拟环境,且两个虚拟环境之间的更新互不影响?

传统方法可能就是使用pip freeze和pip install命令来依次安装requirements.txt中的包。

这个时候可能有些同志就想起了,我直接将已有的venv环境复制到其他地方不就行了吗?

因为直接复制过去,虽然你能使用\venv\Scripts\activate激活虚拟环境,但你的环境其实指向的还是老环境的python环境,不信我们看:

直接激活新环境的虚拟环境,然后输入where python:

注:我这里已有的venv环境位于:E:\Code\Python\Git\stable-diffusion-webui 新的venv环境位于:E:\Code\Python\Git\kohya_ss

特别是如果你使用where pip命令,返回的路径是你新venv的路径:

但实际pip依然是老venv中的pip:

这意味着你如果要在新的环境安装其他版本的软件包,修改的却是老版本的venv软件包,这样还可能导致老的venv因为包冲突而无法使用!

3.解决方法🐡

这其实是因为你粗暴的将老环境复制过来,其中文件中的指向依然是老环境,因此,我们只需要将这些文件中的路径指向新环境即可!

3.1.方法

1:先复制所有软件包,然后直接修改路径指向

将venv\pyvenv.cfg文件内的home修改为新venv的安装路径:

image

如我这边使用conda安装的python,就直接将紫框中的内容修改为:

E:\Code\Python\Git\kohya_ss\conda\py3106。如果你是独立下载python安装包,那就填入python的安装路径!

2:修改venv\Scripts\activate中的VIRTUAL_ENV指向新的venv路径

image-1

3:修改venv\Scripts\activate.bat中的VIRTUAL_ENV指向新的venv路径

image-2

4:重新安装pip

首先激活新venv,然后卸载新环境中的旧pip:

python -m pip uninstall pip

然后重新安装pip, 这个时候你可以选择去官网下载pip安装包进行,但是这样感觉有点太麻烦了,推荐直接使用如下命令安装:

python -m ensurepip –default-pip

并升级到最新版本:

python -m pip install –upgrade pip

转自:Python直接复制已有的venv虚拟环境以创建新的虚拟环境_virtualenv复制环境_任博啥时候能毕业?的博客-CSDN博客

本文由作者按照 CC BY 4.0 进行授权