Conda - 将软件包安装到根环境而不是活动环境

时间:2017-04-03 19:55:26

标签: python pip anaconda

我使用Conda在我的Windows机器上设置了一个环境。当我尝试安装软件包时,它不是安装到活动环境,而是安装到根环境。这是什么交易。

(science) C:\Users\user>conda info --envs
# conda environments:
#
science                *  C:\Users\user\Anaconda3\envs\science
root                      C:\Users\user\Anaconda3

我在science环境中处于活动状态,我尝试使用pip安装软件包。

pip install git+https://github.com/peplin/pygatt

但是当我在活动环境中列出已安装的软件包时:

(science) C:\Users\user>conda list
# packages in environment at C:\Users\user\Anaconda3\envs\science:
#

没有。如果我停用我的环境并再次尝试conda list,则会显示它已安装到根环境中。这不是理想的行为。

(science) C:\Users\user>deactivate

C:\Users\user>conda list
# packages in environment at C:\Users\user\Anaconda3:
#
_license                  1.1                      py36_1
alabaster                 0.7.9                    py36_0
anaconda                  4.3.1               np111py36_0
...
pygatt                    3.1.1                     <pip>
...

我做错了什么?

我尝试创建第二个环境。如果我将pygatt安装到第二个环境,然后交换到第一个环境并尝试pip list,那么pygatt也在第一个环境中。就像这些环境没有做到他们应该做的那样。

1 个答案:

答案 0 :(得分:6)

您似乎正在使用根pip,这就是您在虚拟环境中看不到任何已安装软件包的原因。

使用特定于虚拟环境的点:

  • 首先在虚拟环境中安装pip: conda install -n science pip(现在science环境将拥有自己的pip)。
  • 然后,在存储conda环境的任何地方找到pip文件(对我来说是.../anaconda/envs/)。
  • 现在,您可以使用本地pip文件安装您的软件包: .../anaconda/envs/science/bin/pip install something

问题是,除非你指定你想要专门为虚拟环境安装一些东西,它将最终在根env中(我不确定这是否是设计的,但这是发生在我的机器)。所以,如果你想安装到虚拟环境:

  • conda install -n env_name package_name如果是conda安装。
  • .../anaconda/envs/science/bin/pip install something如果是pip安装。