Skip to main content

Interface Python with pkg-config

Project description

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

pkgconfig is a Python module to interface with the pkg-config command line tool for Python 3.3+.

It can be used to

  • find all pkg-config packages

    >>> packages = pkgconfig.list_all()
  • check if a package exists

    >>> pkgconfig.exists('glib-2.0')
    True
  • check if a package meets certain version requirements

    >>> pkgconfig.installed('glib-2.0', '< 2.26')
    False
  • return the version

    >>> pkgconfig.modversion('glib-2.0')
    '2.56.3'
  • query CFLAGS and 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'
  • get all variables defined for a package:

    >>> pkgconfig.variables('glib-2.0')
    {u'exec_prefix': u'/usr'}
  • parse the output to build extensions with setup.py

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

    or

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

    The pkgconfig.parse function returns a dictonary of lists. The lists returned are accurate representations of the equivalent pkg-config call’s result, both in content and order.

If pkg-config is not on the path, raises EnvironmentError.

The pkgconfig module is licensed under the MIT license.

Changelog

Version 1.5.4

  • Adjust pyproject.toml and drop Python 2 support

Version 1.5.3

  • Add configure_extension API

Version 1.5.2

  • Update poetry dep

  • Improve CI

Version 1.5.0

  • Use poetry instead of setuptools directly

  • Fix #42: raise exception if package is missing

  • Fix version parsing for openssl-like version numbers, fixes #32

  • Fix #31: expose –modversion

  • Fix #30: strip whitespace from variable names

Version 1.4.0

  • Add boolean static keyword to output private libraries as well

  • Raise original OSError as well

Version 1.3.1

  • Fix compatibility problems with Python 2.6

Version 1.3.0

  • Add variables() API to query defined variables

  • Disable Python 3.2 and enable Python 3.5 and 3.6 tests

  • Fix #16: handle spaces of values in .pc files correctly

Version 1.2.1 and 1.2.2

Bug fix releases released on December 1st and 2nd 2016.

  • Include the data folder in the distribution in order to run tests

  • Improve the tests

Version 1.2.0

Released on November 30th 2016.

  • Potential break: switch from result set to list

  • Expose –list-all query

  • Added support for PKG_CONFIG environment variable

Version 1.1.0

Released on November 6th 2013.

  • Multiple packages can now be parsed with a single call to .parse.

Version 1.0.0

First release on September 8th 2013.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pkgconfig-1.5.5.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

pkgconfig-1.5.5-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file pkgconfig-1.5.5.tar.gz.

File metadata

  • Download URL: pkgconfig-1.5.5.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.6 CPython/3.8.10 Linux/5.8.0-50-generic

File hashes

Hashes for pkgconfig-1.5.5.tar.gz
Algorithm Hash digest
SHA256 deb4163ef11f75b520d822d9505c1f462761b4309b1bb713d08689759ea8b899
MD5 12523e11b91b050ca49975cc033689a4
BLAKE2b-256 c4e0e05fee8b5425db6f83237128742e7e5ef26219b687ab8f0d41ed0422125e

See more details on using hashes here.

File details

Details for the file pkgconfig-1.5.5-py3-none-any.whl.

File metadata

  • Download URL: pkgconfig-1.5.5-py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.6 CPython/3.8.10 Linux/5.8.0-50-generic

File hashes

Hashes for pkgconfig-1.5.5-py3-none-any.whl
Algorithm Hash digest
SHA256 d20023bbeb42ee6d428a0fac6e0904631f545985a10cdd71a20aa58bc47a4209
MD5 80f1e06563f3af0f090694db58736455
BLAKE2b-256 32af89487c7bbf433f4079044f3dc32f9a9f887597fe04614a37a292e373e16b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page