Python 如何在setup.py中声明对gi.repository的依赖关系(以及必需的C库)?

Python 如何在setup.py中声明对gi.repository的依赖关系(以及必需的C库)?,python,setuptools,gobject-introspection,Python,Setuptools,Gobject Introspection,我正在通过gobject内省打包一个依赖于多个C库的python应用程序。我想确保至少安装了glib中的python模块(即gi模块,在Debian中打包为pythongi,我不是说不推荐使用的PyGObject模块)。将其作为常规依赖项添加会导致安装失败,因为它不在Pypi中 我该如何申报?我看了一个setuptool文档,我看到的没有一个能完全起作用 谢谢 相关问题: 不能使用setuptools(AFAIK,即…)指定非Python依赖项 install\u需要setuptools的关

我正在通过gobject内省打包一个依赖于多个C库的python应用程序。我想确保至少安装了glib中的python模块(即gi模块,在Debian中打包为pythongi,我不是说不推荐使用的PyGObject模块)。将其作为常规依赖项添加会导致安装失败,因为它不在Pypi中

我该如何申报?我看了一个setuptool文档,我看到的没有一个能完全起作用

谢谢

相关问题:


不能使用
setuptools
(AFAIK,即…)指定非Python依赖项

install\u需要
setuptools的
关键字。setup
只能指定Python风格的依赖项;它以Python打包基础设施为目标。Python风格的安装程序(pip、easy_install或Python setup.py install)将仅使用查找和解析Python风格包的策略来解析此类依赖关系。其中一种策略是使用类似PyPI的包索引

如果您想创建一个具有Debian风格依赖项的包,这些依赖项由Debian风格安装程序使用Debian package repos解决,那么您必须创建一个Debian包。有一些工具支持从Python项目创建Debian包,例如和。然而,大多数人建议多走一步,明确地创建一个Debian包

在一般情况下,通过PyPI打包和分发Python项目应该是一种方法。它独立于平台和发行版,可以很好地与特定于Python的安装程序(如pip)和工具(如virtualenv或buildout)配合使用。对PyGI的依赖性涉及到向用户记录事实,例如在其自述中:

它基于PyGI,Python GObject内省绑定,该绑定 是使用Python中GLib的推荐方法。不幸的是,PyGI是 不是在pypi上打包的,所以您需要从 发行版的存储库(通常称为python gi、python gobject或 pygobject3)


当从PyGI导入时,您的项目也可能是防御性的,当导入失败时,会向用户显示一条易于理解的错误消息,如“please sudo apt get install python gi”等等。

我也想了解如何做到这一点。如果你想合作的话,可以在我的个人资料页面上给我发电子邮件。这不完全是一个答案,但我真的没有期待更多:-)但是,是的,Debian打包的东西,是我经常做的事情。特定于语言的打包,如果对于快速建立基本开发环境是可行的,那么当事情变得“真实”时,它就不会停止。