问题标签 [conda-build]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
45 浏览

conda - 使用配方时如何运行导入测试?(不适用于 bdist_conda)

我正在使用 conda-build 使用配方(即meta.yaml文件)构建 python 包。

我希望 conda-build 自动发现并在包中的所有模块上运行导入测试,就像使用时一样bdist_conda(请参阅https://docs.conda.io/projects/conda-build/en/latest/user -guide/recipes/build-without-recipe.html#import-tests)。但是,我正在使用食谱。这可能吗?

0 投票
2 回答
135 浏览

python - 使用 conda build 1 次构建 win32 和 win64 包

我的纯 python 脚本是 32 位或 64 位不可知的,但我的依赖项不是。我想使用 cython 来加速一些功能,使包不是纯 python。我想在带有 python 32 位或 64 位的 Windows 上使用它们。

有没有办法用 1 个 conda 配方为win32win64平台构建一个 conda python 包?

有人会假设两个平台都可以使用运行时依赖项(例如 Numpy 等)。安装程序可以从 miniconda 32 或 64 位安装开始。

我已经阅读了区分meta.yaml 中buildhost需求、conda 构建变体和架构虚拟包的文档,但我正在努力查看这些功能的巧妙组合是否可以让我一次构建这两个包。

谢谢!

0 投票
1 回答
1871 浏览

python - 如何通过 conda-build 配方安装 pip 包?

我正在尝试从数据管道中制作一个 conda 包。这个想法是通过我们的部门在本地分发包以便快速部署。

我们的管道在常见的 conda 渠道中使用了 2 个不适用于 Windows 的包:SimpleITK 和 scitools3。在我们创建了具有所有其他 conda 包依赖项的 conda 环境后,我们通常会通过 pip 安装这两个包。

我制作了以下 conda 包配方meta.yaml

我们的存储库结构如下所示:

然后我通过我的终端构建 conda 包:

我的问题是,是否可以通过 conda 配方安装 pip 包依赖项?

我已经尝试阅读所有官方文档、来自 conda-forge 的示例食谱以及各种网站上的问题。我经常遇到有人提到这将是一个不错的功能,但没有直接支持 pip 依赖项。但是,我没有遇到任何表明无法做到这一点的信息。

我的第一个想法:

我注意到in下有一个script参数。据我所见,大多数食谱往往包含以下内容:buildmeta.yaml

我没有完全掌握这个脚本调用在做什么。可以通过此脚本参数以某种方式安装 pip 包吗? 我尝试了以下不同的变体,但没有成功:

script: "{{ PYTHON }} -m pip install SimpleITK scitools3"

第二个想法:

可以修改bld.batorbuild.sh以自动安装 pip 包吗?在制作 shell 脚本或在 conda-build 过程中特别调用这些文件时,我不太了解。我所知道的是它bld.bat在 Windowsbuild.sh中被调用,在 MacOS 和 Linux 中被调用。

第三个想法:

从我在bld.batandbuild.sh文件中可以看到,该setup.py文件被调用。例如在bld.bat

setup.py在调用过程中的任何时间点何时以及为何调用该文件conda-buildsetup.py是否在我正在创建的 conda 包旁边/中的任何时候安装了中列出的要求?. 另一种选择也可以是setup.py通过meta.yaml脚本参数调用。

同样,我对如何创建 conda 包的理解非常浅薄。任何关于如何更好地理解 conda 包制作的指针将不胜感激。

0 投票
1 回答
84 浏览

conda-build - 更改 conda 包的构建字符串

当我第一次运行conda-build myrecipetar.bz2 时,它的名称为“mypackage-version-py38_0.tar.bz2”,但此后每次运行时,构建字符串都是“mypackage-version-py38head00f5_0.tar.bz2”。为什么现在将“head00f5”添加到构建字符串中?

这是我的 meta.yaml

0 投票
1 回答
192 浏览

continuous-integration - 通过 conda-forge / conda-install 指定选择的默认 conda 包版本

我想通过 conda 分发一个包的多个版本。具体来说,我想做这样的事情:

诀窍是我希望“最新”或默认包是没有-dev. 据我了解,conda install <package>没有版本号将安装最新版本。就我而言,那将永远是-dev. 是否可以将默认设置为特定版本号?

0 投票
1 回答
83 浏览

conda-build - 在 Azure 管道中设置 conda 元数据的内部版本号

我正在使用 bash 脚本在 azure 管道conda build . --output-folder $(Build.ArtifactStagingDirectory)中构建 conda pakage 这是问题所在,Conda build 使用 meta.yml 文件中的内部版本号(请参见此处)。

我能想到的一个解决方案是,首先,将所有文件复制到Build.ArtifactStagingDirectory并将 Azure 管道添加Build.BuildNumber到 meta.yml 并将包构建到Build.ArtifactStagingDirectory(在子文件夹中)

我试图通过编写 shell 脚本来操作 Azure 管道中的 yaml 文件来避免这样做,因为它可能容易出错。有人知道更好的方法吗?很高兴在答案或评论中阅读更优雅的解决方案。

0 投票
0 回答
72 浏览

python - 如何基于通过“conda build”命令传递的参数构建 conda 配方

我想要一个单一的配方来在我的存储库中构建我所有的个人 python 包。(这里有多个。)这是回购的结构:

我想以下列方式构建每个包:

这应该允许我拿起包并在 meta.yaml 文件中相应地设置路径:

  1. 是否可以从配方中访问变体数据?
  2. 如果没有,是否有替代方案来实现这一目标?
0 投票
1 回答
92 浏览

python - 安装我的 conda 包后在标准输出上显示自定义消息的最简单方法

场景:

  • 我们维护了一些公司内部使用的 conda 包
  • 对于其中一些包,我们几乎不知道这些包的使用位置和方式(用户下载并安装这些包到他们的本地 python 安装)
  • 为了更好地支持使用这些包的用户和项目,我们想更多地了解这些包的用法。

当用户安装软件包时,我想在标准输出上显示一条消息:

Please let us know that you're using the xxx package: send an e-mail to ...@example.com, notify us on the teams channel, or update the wiki page ... directly. Thanks!

问题:

  • conda install在成功安装软件包后显示自定义消息的最简单方法是什么?最好是适用于 Linux 和 Windows 的东西。
0 投票
1 回答
261 浏览

python - 使用 conda-build 从相同的源代码构建两个具有不同要求的包

我正在做一个使用 Tensorflow 的项目。要求是将我的代码打包为 conda 包,使用conda-build.

Tesnorflow 在 conda 上还没有一个支持 cpu 和 gpu 的包,请参阅这个问题。相反,conda 上的 Tensorflow 是两个包,一个用于 CPUtensorflow和 GPUtensorflow-gpu

这将迫使我为我的 CPU 和 GPU 项目构建两个包。conda-build无需拥有两个存储库即可使用的最简洁方法是什么。

是否可以使用多个meta.yaml文件来构建conda-build

谢谢

0 投票
0 回答
130 浏览

python - 如何为动态链接库编写 conda 配方?

我首先编写了一个bash脚本来创建一个conda环境并安装xerus库及其所有依赖项。

然后我尝试从这个脚本创建一个conda包。虽然它可以在我的机器上运行(即使在上传到anaconda.org之后),但它不适用于我的同事。然而,bash脚本确实如此。

我假设我在meta.yamlor的规范中犯了一个简单的错误build.sh。你能告诉我哪里出错了吗?

安装脚本

conda 构建文件

元.yaml

构建.sh

测试.sh