在conda环境中使用pip作为低优先级“通道”

2024-04-20 09:48:55 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有一种方法可以使用pip作为conda环境中某些包的“回退”选项,比如可以有多个优先的conda通道?你知道吗

对于正常的康达频道,我的环境.yml具体如下:

name: my_env
channels:
  - defaults
  - conda-forge
dependencies:
  - some-package>=1.2.3

其中some-package将在可能的情况下从默认通道安装,否则将从conda forge安装。如果两个通道都没有合适的包版本,则它将失败。你知道吗

那个环境.yml使用pip:

name: my_env
channels:
  - defaults
  - conda-forge
dependencies:
  - pip
  - pip:
    - some-package>=1.2.3

其中some-package总是来自pip。你知道吗

但我想要的是这样的:

name: my_env
channels:
  - defaults
  - conda-forge
dependencies:
  - some-package>=1.2.3
  - pip
  - pip:
    - some-package>=1.2.3

包将首先来自defaults,否则来自conda forge,或者来自pip。
但是,这会在尝试pip之前给出ResolvePackageNotFound错误。有没有办法做到这一点?你知道吗


Tags: pip方法nameenvpackage环境myyml
1条回答
网友
1楼 · 发布于 2024-04-20 09:48:55

我在某个地方读到过conda应该被扩展,以允许满足pip安装包的依赖性。但我无法通过快速搜索找到引用,而且我不认为它是一个产品级的特性。我记得的不是conda安装的pip包,而是conda接受已经安装的pip包。你知道吗

Anaconda包定义了它们与其他Anaconda包的依赖关系。因此,conda解析Anaconda包在其自己的包和元数据世界中的依赖关系。有些软件包在Anaconda频道和PyPI上甚至没有相同的名称。你知道吗

换句话说:不,我不认为你想要的是可能的。当您想在pip安装某些东西时,必须调用pip。你知道吗

相关问题 更多 >