有关通过conda install安装/更新软件包的问题

时间:2019-02-20 01:54:26

标签: python pip anaconda spyder

我的问题是:

假设我有两个环境,基本环境和名为venv的虚拟环境

如果我通过

在基本环境中安装/更新软件包
conda install package

venv中的软件包也会被更新吗?

如果我更新venv'软件包,是否会在基本环境下更新该软件包?

如果是这样,如何防止它们一起更新(我想在一个环境中进行更新/安装并保持另一环境的清洁)

至于我问这个问题的原因是,我注意到在基础环境中静默地更新了一些软件包(我没有更新,我总是在venv环境中更新/安装),如果我偶然破坏了venv环境(例如,更新一些不正确的包装,这种情况经常发生);我仍然可以从健康,干净的基本环境中恢复过来。

1 个答案:

答案 0 :(得分:2)

我假定虚拟环境(venv)是在基本conda环境中安装的virtualenv

在venv内部安装或更新软件包对基本环境没有影响。

另一种方法(假设您不在venv中时使用conda更新软件包),这取决于:

  • 如果venv是使用最新版本的virtualenv或带有--no-site-packages标志(由于现在the default弃用)创建的,则venv之外的软件包更新应该没有影响。
  • 如果venv是使用最新版本的virtualenv或使用--system-site-packages标志创建的,那么venv之外的软件包更新应该会产生影响。

最后一个选项,在虚拟环境内部使用conda更新软件包时会遇到麻烦。

由于您使用的是conda,为什么不创建两个conda环境并停止使用virtualenv?另外,由于您放置了pip标签,因此我建议您查看Using Pip in a Conda Environment,以了解pip / conda交互作用。