我的问题是:
假设我有两个环境,基本环境和名为venv的虚拟环境
如果我通过
在基本环境中安装/更新软件包conda install package
venv中的软件包也会被更新吗?
如果我更新venv'软件包,是否会在基本环境下更新该软件包?
如果是这样,如何防止它们一起更新(我想在一个环境中进行更新/安装并保持另一环境的清洁)
至于我问这个问题的原因是,我注意到在基础环境中静默地更新了一些软件包(我没有更新,我总是在venv环境中更新/安装),如果我偶然破坏了venv环境(例如,更新一些不正确的包装,这种情况经常发生);我仍然可以从健康,干净的基本环境中恢复过来。
答案 0 :(得分:2)
我假定虚拟环境(venv)是在基本conda环境中安装的virtualenv。
在venv内部安装或更新软件包对基本环境没有影响。
另一种方法(假设您不在venv中时使用conda更新软件包),这取决于:
--no-site-packages
标志(由于现在the default弃用)创建的,则venv之外的软件包更新应该没有影响。--system-site-packages
标志创建的,那么venv之外的软件包更新应该会产生影响。最后一个选项,在虚拟环境内部使用conda更新软件包时会遇到麻烦。
由于您使用的是conda,为什么不创建两个conda环境并停止使用virtualenv?另外,由于您放置了pip标签,因此我建议您查看Using Pip in a Conda Environment,以了解pip / conda交互作用。