我正在研究一个需要sh
的软件包。此程序包在 Windows 上不受支持。对于 Windows,我使用从中分叉sh
的旧包,pbs
,并将其重命名为命名空间中的sh
。
如何创建可在 Windows 上正确安装pbs
并在其他平台上正确安装sh
setup.py
?
编辑:经过一些研究,事实证明我的问题特定于新的车轮格式,因为我的答案反映了。如果我无法弄清楚轮子应该如何工作,将来我会问一个不同的问题。
是的! 只需将您的代码放在 sys.platform 变量上的条件块中,例如:
import sys
if (sys.platform=='win32'):
import somewindowsmodule
elif (sys.platform=='macOSX'):
import somemacmodule
elif (sys.platform=='linux'):
import somelinuxmodule
我不确定 mac 或 Linux 的平台字符串是什么,但你可以弄清楚,我敢肯定。 此外,某些模块的名称都是虚构的,以保护无辜者。 :)
好的,事实证明我最初的解决方案是正确的:
# setup.py
...
setup(
...
install_requires=["pbs" if os.name == 'nt' else "sh"]
...
)
最近打破的原因是由于以新的车轮格式发布。我的理解是,这种新格式不会随包一起提供setup.py
,而是使用其他方式处理依赖项。
在我了解如何交付具有条件依赖项的轮子之前,我不会为这个项目生产轮子。