我有一个Python包,它只能在Linux上有意义地运行。我在docs中看到platforms
元数据中有一个setup.py
键,但是从distutils
源代码中的查找可以看出,这个元数据实际上没有被任何东西使用。你知道吗
接下来,我研究了PyObjC,一个著名的osx-only Python包。我注意到它在其setup.py
中填充了前面提到的platforms
键。然而,当我尝试在Linux上安装PyObjC时,并没有以任何有意的方式阻止或阻止安装。随后出现的故障模式非常糟糕:当platform.mac_ver()
返回一个它不期望的值时,它会出错。我试图手动修复这个问题,而distutils
似乎正在以一种愉快的方式收集依赖项等,直到最终它找不到特定于平台的文件。。。总之,distutils
没有以任何合理的方式处理特定于平台的包。你知道吗
理想情况下,我希望安装失败,并显示一些消息,表明该包与当前平台不兼容。我已经花了一点时间,我能想到的“最好的”事情是对install
和develop
命令进行子类化,并在那里手动处理平台检查。你知道吗
有更好的办法吗?你知道吗
我可能过于简单化了,但是在你的
setup.py
的顶端,你就不能这样做:相关问题 更多 >
编程相关推荐