繁体   English   中英

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

[英]How to include pip-only package when building conda package by using conda-build?

我想为我的项目构建一个 Conda 包。 但是,有一个包仅在 pip 上(未上传到 Conda 频道)。 使用 conda-build 命令时如何仅包含 pip 包?

我尝试使用 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 包构建conda skeleton pypi plaidml-keras

Error: No source urls found for plaidml-keras

在构建 conda 包时,是否有关于如何包含 pip only 包的好做法?

我在 conda-build 文档中环顾四周,看起来您可以使用轮子作为依赖项构建 conda 包。 来自conda-build 用户指南文档

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

您可以在 conda recipe 的 meta.yaml 文件的源部分下载 .whl 文件。

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

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

笔记

仅 pip install 一个所需的包很重要。 尽可能使用 conda 而不是 pip 安装依赖项。

我们强烈建议在 pip install 命令中使用 --no-deps 选项。

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

暂无
暂无

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

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