2016-10-04 132 views
26

我瞭解conda-forge是爲了構建和維護軟件包而發起的。創建Anaconda Python環境時,我應該使用Conda還是Conda Forge?

但是,當構建Anaconda Python環境時,如果兩個存儲庫中都存在程序包,我們如何知道何時使用'conda-forge'經文'conda install'?例如,Django可以安裝'conda install'和'conda-forge'。

我們應該使用哪一個?有關係嗎?

有人能給我一個非常簡短的「conda-forge for dummies」課嗎?文檔非常少。

感謝

回答

49

簡短的回答是,在我的經驗一般,沒關係,你使用。

長的答案:

所以conda-forge是可以從其中安裝的軟件包的附加通道。從這個意義上說,它不是比默認頻道或其他數百(數千個)頻道中人們發佈套餐所特有的更特別的。如果您註冊https://anaconda.org並上傳您自己的Conda包,您可以添加自己的頻道。

在這裏,我們需要從問題描述中看出,在跨平臺軟件包管理器conda和軟件包頻道conda-forge之間,我不清楚您的區別。 Continuum IO,conda軟件的主要開發人員還維護一個單獨的軟件包通道,當您在不更改任何選項的情況下鍵入conda install packagename時,這是默認值。

有兩種方法可以更改頻道選項。一種是每次安裝包時指定一個通道:

conda install -c some-channel packagename 

當然,該包必須存在於該通道上。如果您經常使用相同的頻道,那麼您可能需要將其添加到您的配置中。你可以寫

conda config --add channels some-channel 

到通道some-channel添加到channels配置列表的頂部。這給some-channel最高優先級(優先級決定(in part)當多個通道具有特定包時選擇哪個通道)。要將通道添加到列表的末尾,並給它的優先級最低,鍵入

conda config --append channels some-channel 

如果您想刪除已添加的通道,你可以這樣做,通過寫

conda config --remove channels some-channel 

請參閱

conda config -h 

瞭解更多選項。

上面所有的內容說,還有使用conda-forge通道,而不是defaults通道由連續保持四個主要原因:

  1. conda-forge可以是封裝更先進的日期比在defaults通道
  2. 上有conda-forge通道是不能從defaults
  3. 包你會更喜歡使用的依賴,如openblas(來自conda-forge)而不是mkl(來自defaults)。
  4. 如果您正在安裝需要編譯庫的軟件包(例如,C擴展名或C庫附帶的包裝文件),那麼如果您將所有軟件包安裝在環境中,則它可以減少不兼容的可能性:由於基本C庫的二進制兼容性(但此建議可能會過時/將來發生變化)導致的單通道。
+0

謝謝!我有兩個相關的問題: 1.我怎麼知道哪個頻道是好的嘗試; 2.在我配置一個通道後,如何將其重置爲默認值? – Daniel

+0

@Kenny要回答你的第一個問題,你應該在https://anaconda.org上搜索你想要的軟件包,看看哪個頻道有這個軟件包。我編輯了答案來回答你的第二個問題。不過,我也注意到,如果你想從一個通道安裝一個軟件包,使用'conda install -c some-channel packagename'編寫命令可能會更容易 – darthbith