2016-02-17 342 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安裝。因此重複。