【问题标题】:How to specify CPU Architecture of a Python package in setup.py?如何在 setup.py 中指定 Python 包的 CPU 架构?
【发布时间】:2021-07-06 16:13:27
【问题描述】:

我希望我的包仅在 32 位和 64 位 Windows 10 上可用,我如何通过 setup.py 做到这一点?

我已经尝试为 windows 10 和 win32 环境添加这些分类器,但它仍然会生成一个轮子名称中包含“none-any”的包。

我需要它类似于“win-amd64-x86”(不记得确切)。我见过其他几个具有类似命名方案的包。

我知道我可以手动重命名 Wheel 文件来做我想做的事,但是这样做的正确方法是什么?

在一些 PEP 文档中,我读到 Supported-Platforms: 参数是我需要的,但我不知道它有哪些可能的选项以及我将这个参数放在哪里?

【问题讨论】:

  • 如果没有必要,为什么还要限制平台? wheel 将根据特定于平台的二进制文件是否打包在您的代码中来确定架构限制。听起来你只是构建了一个pure python package,它应该适用于任何拱门——正如wheel 告诉你的那样。如果您仍然确信需要手动设置,这就是您要找的吗? stackoverflow.com/questions/45150304/…
  • 我的包不是纯 Python,它更像是 C# 应用程序的 Python 包装器,它仅适用于 Windows 10 (x86/amd64)。 Wheel 没有自动检测到任何东西并生成名为“none-any”的 whl 文件,因此我什至可以从 android (aarch64/armv8 cpu) 上的 pip 安装它,我不想发生这种情况。
  • 那么,如果您可以让我链接的帖子为您工作,您是否可以建议将其作为欺骗目标,或者将您的修改发布为自我回答?恐怕这个问题太具体了,除了你之外的任何人都无法可靠地解决。
  • 其实我已经解决了,甚至忘记了我问过这个问题。

标签: python pip setup.py python-packaging python-wheel


【解决方案1】:

不能将其设为“仅限 Win 10”,但对于“仅限 Windows”,可以通过在 setup.py 中使用 --plat-name 参数来完成

对于 32 位 Windows:-

python setup.py bdist_wheel --plat-name win32

对于 64 位 Windows:-

python setup.py bdist_wheel --plat-name win_amd64

另见:How to force a python wheel to be platform specific when building it?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-27
    • 1970-01-01
    • 2015-05-27
    • 2019-12-18
    • 2021-03-02
    • 2013-07-17
    • 2016-08-12
    • 1970-01-01
    相关资源
    最近更新 更多