1

我正在开发一个需要sh. Windows 不支持此软件包。sh对于 Windows,我使用从 , 派生的旧包pbs,并将其重命名为sh我的命名空间。

如何创建setup.py可以正确安装pbs在 Windows 和sh其他平台上的软件?

编辑:经过一些研究,事实证明我的问题是针对新车轮格式的,正如我的回答所反映的那样。如果我无法弄清楚轮子应该如何工作,我将来会问一个不同的问题。

4

2 回答 2

3

是的!只需将您的代码放在 sys.platform 变量的条件块中,例如:

import sys
if (sys.platform=='win32'):
    import somewindowsmodule
elif (sys.platform=='macOSX'):
    import somemacmodule
elif (sys.platform=='linux'):
    import somelinuxmodule

我不确定 mac 或 linux 的平台字符串是什么,但你可以弄清楚,我敢肯定。此外,为了保护无辜者,某些模块名称都是虚构的。:)

于 2014-01-27T01:19:59.577 回答
2

好的,事实证明我原来的解决方案正确的:

# setup.py
...
setup(
...

    install_requires=["pbs" if os.name == 'nt' else "sh"]
...
)

最近发生这种情况的原因是由于发布了新的车轮格式。我的理解是,这种新格式不会setup.py随您的包一起提供,而是使用其他方式处理依赖项。

在我了解如何交付具有条件依赖关系的轮子之前,我不会为这个项目生产轮子。

于 2014-01-27T01:27:51.173 回答