我的问题是:
假设我有两个环境,基础和名为venv的虚拟环境
如果我通过基础环境安装/更新包
conda install package
venv里面的包裹也会更新吗?
如果我更新venv'package,基础环境下的包是否会更新?
如果是这样,我怎么能阻止它们一起更新(我想在一个环境中更新/安装并保持其他环境干净)
至于为什么我问这个问题是我注意到一些软件包在基础环境中默默地更新(我没有更新,我总是在venv环境中更新/安装)并且如果我偶然破坏了我的venv环境(比如,更新一些软件包不正确,这经常是);我仍然可以从健康,清洁的基础环境中恢复过来。
我假设虚拟环境(venv)在基本conda环境中安装了virtualenv。
在venv中安装或更新软件包应该对基础环境没有影响。
另一种方式(假设您在使用conv时使用conda更新包),这取决于:
--no-site-packages
标志创建venv(因为现在the default已弃用),那么venv中的软件包更新应该没有任何影响。--system-site-packages
标志创建venv,那么来自venv的yes软件包更新应该会产生影响。最后一个选项,在虚拟环境内部使用conda更新软件包时会遇到麻烦。
既然你正在使用conda,为什么不制作两个conda环境并停止使用virtualenv?此外,既然你把pip标签,我建议看看Using Pip in a Conda Environment来理解pip / conda交互。