我的纯python脚本是32位或64位不可知的,但我的依赖项不是。我想使用 cython 来加速一些函数,使包不是纯 python。我想在带有python 32位或64位的Windows上使用它们。
有没有办法用 1 个 conda 配方构建一个适用于win32
和win64
平台的 conda python 包?
人们会假设运行时依赖项(例如 Numpy 等)可用于两个平台。安装程序可以从 miniconda 32 或 64 位安装开始。
我已经阅读了区分 meta.yaml 中的build
、host
要求、conda 构建变体和架构虚拟包的文档,但我正在努力看看这些功能的巧妙组合是否允许我一次性构建这两个包。
谢谢!
编辑:这不起作用
有没有办法用 1 个 conda 配方构建适用于 win32 和 win64 平台的 conda python 包?
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
并确保你在配方meta.yaml
的requirements/build:
部分中使用 Jinja 编译器函数:
build:
- {{ compiler('c') }}
- {{ compiler('cxx') }}
然后conda build
将一次性构建win-32
和win-64
包。(我用了64 位conda-build
但我认为这并不重要)。