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

Cha*_*rts 4 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
Run Code Online (Sandbox Code Playgroud)

我在我的science环境中很活跃,我尝试使用pip安装包.

pip install git+https://github.com/peplin/pygatt
Run Code Online (Sandbox Code Playgroud)

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

(science) C:\Users\user>conda list
# packages in environment at C:\Users\user\Anaconda3\envs\science:
#
Run Code Online (Sandbox Code Playgroud)

没有了.如果我停用我的环境并再试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>
...
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

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

Fel*_*euk 6

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

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

  • 首先在虚拟环境中安装pip :( conda install -n science pip现在science环境将有自己的pip).
  • 然后,pip在存储conda环境的任何地方找到该文件(对我而言.../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安装.