使用conda-build构建conda包时,如何包含pip-only包



我想为我的项目构建一个Conda包。然而,有一个包只在pip上(没有上传到康达频道(。当使用conda-build命令时,如何包含pip-only包?

我尝试使用Conda骨架从PyPI URL构建一个包,但它不起作用,因为PyPI网站上的文件是.whl文件,而不是像Conda骨架教程中那样的tar.gz文件。我应该如何解决这个问题?

这是我在运行conda构建时遇到的错误。

conda_build.exceptions.DependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {'plaidml'}

以及使用conda skeleton pypi plaidml-keras构建plaidml封装的骨架

Error: No source urls found for plaidml-keras

在构建conda包时,有没有一个好的实践来包括仅pip的包?

我在conda构建文档中四处查看,看起来可以使用轮子作为依赖项来构建conda包。来自conda构建用户指南文档:

要从wheel文件构建conda包,请在中安装.whl文件conda配方的bld.bat或build.sh文件。

您可以在conda的源代码部分下载.whl文件配方的meta.yaml文件。

您可以将URL直接放在pipinstall命令中。

示例:TensorFlow的conda配方中有一个pip-install命令build.sh,其中包含.whl文件的URL。meta.yaml文件没有下载或列出.whl文件。

票据

pip只安装一个所需的软件包是很重要的。无论何时可能的话,用conda而不是pip安装依赖项。

强烈建议在pip安装中使用--no-deps选项命令

如果您在没有--no-deps选项的情况下运行pip-install,pip通常会在您的conda配方中安装依赖项,这些依赖项将成为您套餐的一部分。这浪费了包装中的空间增加了文件重叠、文件撞击和损坏的风险包裹。

最新更新