繁体   English   中英

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

[英]using pip as a low priority 'channel' in conda environment

有没有一种方法可以将pip用作conda环境中某些软件包的“后备”选项,例如您可以拥有多个优先的conda通道?

对于普通的conda频道,我的environment.yml如下:

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

如果可能的话,将通过默认通道安装some-package ,否则,将使用conda-forge进行安装。 如果两个通道都没有合适的软件包版本,它将失败。

带有pip的environment.yml:

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

some-package 总是来自点子。

但是我想要的是这样的:

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

软件包将首先来自默认值,否则来自conda-forge,或者来自pip。
但是,这会在尝试pip之前给出ResolvePackageNotFound错误。 有什么办法可以做到这一点?

我读过某处内容,应该扩展conda以允许使用pip安装的软件包满足令人满意的依赖关系。 但是我无法通过快速搜索找到参考,而且我也不认为这是可用于生产的功能。 我记得不是conda安装pip软件包,而是conda接受pip已安装的已经存在的软件包。

Anaconda包根据其他Anaconda包定义了它们的依赖关系。 因此, conda解决了Anaconda软件包在其自身的软件包和元数据世界中的依赖性。 有些包甚至在Anaconda频道和PyPI中甚至没有相同的名称。

换句话说:不,我认为您想要的是不可能的。 你必须打电话pip ,当你想通过安装一些pip

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM