[英]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.