2024-09-27 23:18:20 发布
网友
我有一个软件包(Skype4Py),它根据操作系统有不同的依赖关系。这是因为它依赖操作系统消息总线将自己绑定到Skype。在
在Python包中声明特定于操作系统的依赖关系的正确方法是什么(即,设置.py)? 在
https://github.com/ProgVal/skype4py/commit/06aff9202e5fa8ad90a7bacc6ee1882ce10663dd#commitcomment-7377819
对我最初留下的评论进行了扩展,回复中的建议是明智的。我不认为应该有明确的指南来说明应该做什么,但是实际上,setup.py文件的一个主要点是为运行安装脚本的代理获取正确的依赖关系,然后以正确的方式正确安装包,通常只运行一次,直到需要时才会忘记重新安装。也就是说,把它弄得更整洁是有意义的,所以我要做的就是。在
setup.py
如果您的包只需要posix系统上的一组额外的依赖项,我将在setup.py文件的顶部附近声明类似的内容
posix
system_spec_requires = { 'posix': ['dbus', 'gobjects',], # ... if others are needed }
然后声明任何硬要求,如:
然后通过将特定于系统的需求添加到需求列表中,构建完整的需求列表
import os # assuming you haven't already done that requires.extend(system_spec_requires.get(os.name, []))
最后,在setup调用setup.py的适当部分:
setup
setup( ... requires=requires, ... )
顶部的system_spec_requires字典使它看起来像某种特定于系统的需求的清单,我的意思是它看起来尽可能清楚地说明。实际上,我已经看到了nastier setup.py文件,但是如果它正确地完成了任务(即安装带有其依赖项的包)的话(尤其是不会恶意地破坏我的系统,但是你可能会在某个以.decode('base64')结尾的字符串上发现{}。。。对吗?)我真的不在乎它看起来有多糟。在
system_spec_requires
.decode('base64')
对我最初留下的评论进行了扩展,回复中的建议是明智的。我不认为应该有明确的指南来说明应该做什么,但是实际上,
setup.py
文件的一个主要点是为运行安装脚本的代理获取正确的依赖关系,然后以正确的方式正确安装包,通常只运行一次,直到需要时才会忘记重新安装。也就是说,把它弄得更整洁是有意义的,所以我要做的就是。在如果您的包只需要
posix
系统上的一组额外的依赖项,我将在setup.py
文件的顶部附近声明类似的内容然后声明任何硬要求,如:
^{pr2}$然后通过将特定于系统的需求添加到需求列表中,构建完整的需求列表
最后,在
setup
调用setup.py
的适当部分:顶部的}。。。对吗?)我真的不在乎它看起来有多糟。在
system_spec_requires
字典使它看起来像某种特定于系统的需求的清单,我的意思是它看起来尽可能清楚地说明。实际上,我已经看到了nastiersetup.py
文件,但是如果它正确地完成了任务(即安装带有其依赖项的包)的话(尤其是不会恶意地破坏我的系统,但是你可能会在某个以.decode('base64')
结尾的字符串上发现{相关问题 更多 >
编程相关推荐