【问题标题】:Using conda build to build win32 and win64 packages in 1 go使用 conda build 1 次构建 win32 和 win64 包
【发布时间】:2020-10-31 14:35:50
【问题描述】:

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

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

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

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

谢谢!

【问题讨论】:

    标签: python windows conda conda-build


    【解决方案1】:

    编辑:这不起作用


    有没有办法用 1 个 conda recipe 为 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 convert 仅适用于纯 python 包,当我开始使用 cython 时不会出现这种情况,这就是我理解文档的方式?
    • 你是对的,为错误的答案道歉
    【解决方案2】:

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

    target_platform:
      - win-32
      - win-64
    

    并确保您在配方 meta.yamlrequirements/build: 部分中使用 Jinja 编译器函数:

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 2020-12-27
      • 1970-01-01
      • 2017-12-07
      • 2020-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-16
      相关资源
      最近更新 更多