conda env export --from-history 不跟踪频道

Soo*_*Kim 4 python environment conda

我已经安装了来自不同渠道(-c rdkit rdkit-c pytorch pytorch)的几个软件包,并且我只defaultsconda env export --from-history. 有没有我失踪的旗帜?

我确实看到了一个--ignore-channels选项,它是否以某种方式默认--from-history开启--ignore-channels

mer*_*erv 6

不幸的是,“显式规范”不会跟踪此类通道的临时更改。例如,如果您安装了

conda install -n my_env -c rdkit rdkit
Run Code Online (Sandbox Code Playgroud)

它仅将rdkit视为显式规范。从技术上讲,上面实际上并没有指定rdkit必须来自rdkit频道。相反,更准确的解释是:

优先考虑通道rdkit,确保my_envrdkit安装了某个版本。

我认为您所希望的(自动向 envs 添加频道)可能是一种有用的行为,但它可能会在 GitHub 问题上提出并提出预期的行为。

在显式规范中包含频道信息

同时,可以在规范中明确包含通道,例如,

conda install -n my_env rdkit::rdkit
Run Code Online (Sandbox Code Playgroud)

这应该导致字面上rdkit::rdkit被包含在显式规范中。也就是说,“rdkitrdkit频道安装”。

将频道添加到环境

要向 env 显式添加通道,需要激活 env 并使用conda config --env. 例如,

conda activate my_env
conda config --env --add channels rdkit
Run Code Online (Sandbox Code Playgroud)

注意,还有其他选项,如--prepend--append如果需要更精确地对优先级。

  • 显式包含对我来说很有效。如果正如您所说, -c 参数实际上并不能保证包来自该通道,那么这似乎是首先指定需求的更狭窄的方式。 (2认同)