Skip to main content

使用 pkg-config 接口 Python

项目描述

https://travis-ci.org/matze/pkgconfig.png?branch=master

pkgconfig是一个 Python 模块,用于与 Python 3.3+ 的pkg-config 命令行工具交互。

它可以用来

  • 查找所有 pkg​​-config 软件包

    >>> packages = pkgconfig.list_all()
  • 检查一个包是否存在

    >>> pkgconfig.exists('glib-2.0')
    True
  • 检查一个包是否满足特定的版本要求

    >>> pkgconfig.installed('glib-2.0', '< 2.26')
    False
  • 返回版本

    >>> pkgconfig.modversion('glib-2.0')
    '2.56.3'
  • 查询 CFLAGS 和 LDFLAGS

    >>> pkgconfig.cflags('glib-2.0')
    '-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include'
    
    >>> pkgconfig.libs('glib-2.0')
    '-lglib-2.0'
  • 获取为包定义的所有变量:

    >>> pkgconfig.variables('glib-2.0')
    {u'exec_prefix': u'/usr'}
  • 使用 setup.py 解析输出以构建扩展

    >>> d = pkgconfig.parse('glib-2.0 gtk+-2.0')
    >>> d['libraries']
    [u'gtk+-2.0', u'glib-2.0']

    或者

    >>> ext = Extension('foo', ['foo.c'])
    >>> # sets extension attributes as needed
    >>> pkgconfig.configure_extension(ext, 'glib-2.0 gtk+-2.0')

    pkgconfig.parse函数返回列表的字典返回的列表是等效pkg-config调用结果的准确表示 ,包括内容和顺序。

如果pkg-config不在路径上,则引发EnvironmentError

pkgconfig模块在 MIT 许可下获得许可

变更日志

版本 1.5.4

  • 调整 pyproject.toml 并放弃 Python 2 支持

版本 1.5.3

  • 添加configure_extension API

版本 1.5.2

  • 更新诗歌部

  • 改进 CI

版本 1.5.0

  • 直接使用诗歌而不是 setuptools

  • 修复 #42:如果缺少包,则引发异常

  • 修复类似 openssl 的版本号的版本解析,修复 #32

  • 修复 #31:暴露 –modversion

  • 修复 #30:从变量名中去除空格

版本 1.4.0

  • 添加布尔静态关键字以输出私有库

  • 提高原始OSError以及

版本 1.3.1

  • 修复与 Python 2.6 的兼容性问题

版本 1.3.0

  • 添加 variables() API 以查询定义的变量

  • 禁用 Python 3.2 并启用 Python 3.5 和 3.6 测试

  • 修复 #16:正确处理 .pc 文件中值的空格

版本 1.2.1 和 1.2.2

2016 年 12 月 1 日和 2 日发布的错误修复版本。

  • 在分发中包含数据文件夹以运行测试

  • 改进测试

版本 1.2.0

于 2016 年 11 月 30 日发布。

  • 潜在中断:从结果集切换到列表

  • 公开 –list-all 查询

  • 添加了对 PKG_CONFIG 环境变量的支持

版本 1.1.0

于 2013 年 11 月 6 日发布。

  • 现在可以通过一次调用.parse来解析多个包。

版本 1.0.0

2013 年 9 月 8 日首次发布。

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

pkgconfig-1.5.5.tar.gz (6.1 kB 查看哈希

已上传 source

内置分布

pkgconfig-1.5.5-py3-none-any.whl (6.7 kB 查看哈希

已上传 py3