如何生成特定于平台的Python包?

2024-04-26 11:18:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Python包,它只能在Linux上有意义地运行。我在docs中看到platforms元数据中有一个setup.py键,但是从distutils源代码中的查找可以看出,这个元数据实际上没有被任何东西使用。你知道吗

接下来,我研究了PyObjC,一个著名的osx-only Python包。我注意到它在其setup.py中填充了前面提到的platforms键。然而,当我尝试在Linux上安装PyObjC时,并没有以任何有意的方式阻止或阻止安装。随后出现的故障模式非常糟糕:当platform.mac_ver()返回一个它不期望的值时,它会出错。我试图手动修复这个问题,而distutils似乎正在以一种愉快的方式收集依赖项等,直到最终它找不到特定于平台的文件。。。总之,distutils没有以任何合理的方式处理特定于平台的包。你知道吗

理想情况下,我希望安装失败,并显示一些消息,表明该包与当前平台不兼容。我已经花了一点时间,我能想到的“最好的”事情是对installdevelop命令进行子类化,并在那里手动处理平台检查。你知道吗

有更好的办法吗?你知道吗


Tags: 数据pydocsonly源代码linux方式setup
1条回答
网友
1楼 · 发布于 2024-04-26 11:18:51

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

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

相关问题 更多 >