gpt4 book ai didi

python - 如何制作特定于平台的 Python 包?

转载 作者:太空宇宙 更新时间:2023-11-03 11:26:16 24 4
gpt4 key购买 nike

我有一个只能在 Linux 上有意义地运行的 Python 包。我在 docs 中看到过在 setup.py 元数据中有一个 platforms 键,但据我在 distutils 源代码中查找,这元数据实际上并不用于任何事情。

接下来,我查看了 PyObjC,一个著名的 OS X-only Python 包。我观察到它在其 setup.py 中填充了上述 platforms 键。但是,当我尝试在 Linux 上安装 PyObjC 时,安装不会以任何有意的方式被阻止或阻止。随之而来的故障模式非常不优雅:当 platform.mac_ver() 返回它不期望的值时,它会出错。我尝试手动修复该问题,并且 distutils 似乎正在以其愉快的方式收集依赖项等,直到最终它无法查找特定于平台的文件...底线,distutils 没有以任何合理的方式处理特定于平台的包。

理想情况下,我希望安装失败并显示一些消息表明该包与当前平台不兼容。我已经摸索了一下,我能想出的“最好”的事情包括子类化 installdevelop 命令并在那里手动处理平台检查.

有没有更好的办法?

最佳答案

我可能过于简单化了,但是在你的 setup.py 的顶部,你不能做这样的事情吗:

import platform
distname,version,id = platform.linux_distribution()
if not distname:
raise Exception('Aborting installation: Requires Linux')

关于python - 如何制作特定于平台的 Python 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32934747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com