簡體   English   中英

我可以將頻道添加到特定的 conda 環境嗎?

[英]Can I add a channel to a specific conda environment?

我想將 conda 通道添加到特定的conda 環境,但是當我使用

conda config --add channels glotzer

該頻道現在可從我的所有 conda 環境中使用。 除了從另一個環境測試安裝之外, ~/.condarc文件還包含以下內容:

channels:
  - glotzer
  - defaults

我將如何配置 conda 以便該頻道只能在特定環境中使用?

我確實在頻道文檔中發現,對於 conda >= 4.1.0,將頻道放在~/.condarc的底部將防止添加的頻道覆蓋核心包集。

默認情況下,conda 現在更喜歡來自較高優先級頻道的包,而不是來自較低優先級頻道的任何版本。 因此,您現在可以安全地將頻道放在頻道列表的底部,以提供不在默認頻道中的附加包,並且仍然確信這些頻道不會覆蓋核心包集。

我希望這可以防止大多數問題,除非在一個環境中您確實希望通過渠道添加的包覆蓋核心包。

.condarc 4.2 開始,支持特定.condarc環境的.condarc文件,您可以編寫:

conda config --env --add channels glotzer

將通道添加到活動環境的配置中。

[不確定是否在 4.2 中添加了--env標志。 基於 conda 4.5.9 的答案]

更新

截至 2017 年 1 月,無法向單個 conda 環境添加通道。 從 2020 年 12 月開始,現在可以如Christopher Barber 的回答中所述


替代品

如果您想從特定頻道安裝軟件包但不想將該頻道添加到全局~/.condarc文件,則應使用該選項從特定頻道安裝軟件包:

conda install <some-package> -c glotzer

您可以創建一個包含conda環境規范的environment.yml文件。 完整的文檔在這里,但基本設置如下:

name: EnvironmentName
channels:
    - conda-forge
    - glotzer
dependencies:
    - pip:
        - tensorflow
    - pandas=0.22.*

要使用環境,請鍵入

conda env create -f environment.yml
conda activate EnvironmentName

要在environment.yml更改或包更新時更新環境,

conda env update -f environment.yml
conda activate EnvironmentName

您可以使用特定頻道創建新環境:

conda create -n EnvironmentName -c ChannelName

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM