gpt4 book ai didi

python - 如何在 setup.py(和所需的 C 库)中声明对 gi.repository 的依赖?

转载 作者:太空狗 更新时间:2023-10-29 19:28:38 31 4
gpt4 key购买 nike

我正在打包一个 python 应用程序,它通过 gobject 自省(introspection)依赖于几个 C 库。我想确保至少安装了 glib 中的 python 模块(即 gi 模块,在 Debian 中打包为 python-gi,我不是在谈论已弃用的 PyGObject 模块)。将它添加为常规依赖项会使安装失败,因为它不在 Pypi 中。

我应该如何申报?我查看了 setuptool 文档,但没有看到任何有用的东西。

谢谢。

相关问题:

最佳答案

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

setuptools.setupinstall_requires 关键字只能指定 Python 样式的依赖项;它针对 Python 打包基础设施。 Python 风格的安装程序(pipeasy_installpython setup.py install)将使用查找和解析 Python-仅样式包。其中一种策略是使用像 PyPI 这样的包索引。

如果您想创建一个具有 Debian 风格的依赖项的软件包,这些依赖项由 Debian 风格的安装程序解析,使用 Debian 软件包存储库,您必须创建一个 Debian 软件包。有一些工具支持从 Python 项目创建 Debian 包,例如 easydebstdeb .然而,大多数人建议多走一步,明确地创建一个 Debian 软件包。

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

It’s based on PyGI, the Python GObject Introspection bindings, which is the recommended way to use GLib from Python. Unfortunately, PyGI is not packaged on pypi, so you need to install it from your distribution’s repository (usually called python-gi, python-gobject or pygobject3).

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

关于python - 如何在 setup.py(和所需的 C 库)中声明对 gi.repository 的依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21581799/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com