繁体   English   中英

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

[英]Conda - package installing to the root environment instead of active environment

我使用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也在第一个环境中。 就像这些环境没有做到他们应该做的那样。

您似乎正在使用root 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安装就.../anaconda/envs/science/bin/pip install something

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM