使用 conda build 一次性构建 win32 和 win64 包

Using conda build to build win32 and win64 packages in 1 go

我的纯 python 脚本与 32 位或 64 位无关,但我的依赖项不是。我想用cython来加速一些使包不纯的功能python。我想在 windows 上使用它们 python 32 位或 64 位。

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

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

我已经阅读了区分 buildhost 要求的文档 meta.yaml、conda 构建变体和体系结构虚拟包,但我正在努力寻找一个聪明的方法这些功能的组合将使我能够一次构建两个包。

谢谢!

编辑:这不起作用


Is there a way to build with 1 conda recipe a conda python package for win32 and win64 platforms?

conda convert --platform all 用于延迟执行,或在 64 位上构建它,conda convert --platform win-32 以获得您要求的两个构建。

https://docs.conda.io/projects/conda-build/en/latest/resources/commands/conda-convert.html

这在技术上是两个步骤(构建和转换),但它可以打包到另一个脚本中一次性完成。

经过几次实验,我找到了问题的解决方案。如果将以下内容放入 conda_build_config.yaml:

target_platform:
  - win-32
  - win-64

并确保您使用的是食谱 requirements/build: 部分中的 Jinja 编译器函数 meta.yaml:

build:
  - {{ compiler('c')  }}
  - {{ compiler('cxx')  }}

然后 conda build 将一次性构建 win-32win-64 包。 (我使用 conda-build 64 位 但我认为这不重要)。