2016-02-17 153 views
8

所有新鲜安装后为什么会有pip和conda包装?

的Windows 10,64,d/L蟒蛇2.5.0与Python3,64位并安装它

全新安装i型conda list后,和,包间,我看到 重复像

jupyter     1.0.0     py35_1 
jupyter-client   4.1.1      <pip> 
jupyter-console   4.1.0      <pip> 
jupyter-core    4.0.6      <pip> 
jupyter_client   4.1.1     py35_0 
jupyter_console   4.1.0     py35_0 
jupyter_core    4.0.6     py35_0 

这是正常的,为什么一些包(不是所有的,只有几个)在conda和pip中都有 重复项(不完全相同,有- vs _)?

如果我做pip uninstall jupyter-core会发生什么?

对这样的软件包应该采取哪些策略?

+0

原因是您使用conda和pip安装相同的软件包,conda未能将它们分开,我有同样的问题,并且有人建议:重新安装conda,如果您需要pip来安装某些东西,请使用新的env并尝试在那里,不要同时使用pip和conda作为root env。我找不到更好的解决方案,...让我知道如果你找到更好的方法。 – shelper

回答

6

这是conda的输出已知的问题。软件包只安装一次,但由于命名约定不同,它们被列出两次。有一个关于它的(现已关闭)错误报告: https://github.com/conda/conda/issues/1237

当你问conda的包的列表,这是发生了什么(或者用于发生):

  • conda知道哪个包名与conda一起安装。
  • conda调用pip下面找到安装在conda以外的包。
  • pip列出所有软件包,不管它们来自哪里。
  • conda通过删除安装有conda的软件包来过滤pip的输出。

Afaict,问题是与conda - 安装包含下划线的软件包。 pip在输出中用连字符替换下划线。因此,conda无法检测到它是自己安装的软件包,并将其列为由pip安装的软件包。当然,conda也列出了该软件包的原始下划线名称,由conda安装。因此重复。