我正在开发一个需要sh
的软件包。 Windows不支持此程序包。对于Windows,我使用从pbs
分叉的旧包sh
,并将其重命名为我的命名空间中的sh
。
如何创建一个setup.py
,在Windows上正确安装pbs
,在其他平台上sh
?
编辑:经过一些研究后,我发现我的问题是针对新wheel格式所特有的my answer反映的。如果我不知道轮子应该如何工作,我将来会问一个不同的问题。
答案 0 :(得分: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的平台字符串是什么,但你可以解决这个问题,我敢肯定。此外,有些模块名称都是虚构的,以保护无辜者。 :)
答案 1 :(得分:2)
好的,事实证明我的原始解决方案 正确:
# setup.py
...
setup(
...
install_requires=["pbs" if os.name == 'nt' else "sh"]
...
)
最近爆发的原因是由于以新的wheel格式发布。我的理解是这种新格式不会在您的包中发送setup.py
并使用其他方法处理依赖关系。
在我了解如何发送带有条件依赖关系的轮子之前,我不会为这个项目生成轮子。