Interface Python with pkg-config
Project description
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | deb4163ef11f75b520d822d9505c1f462761b4309b1bb713d08689759ea8b899 |
|
MD5 | 12523e11b91b050ca49975cc033689a4 |
|
BLAKE2b-256 | c4e0e05fee8b5425db6f83237128742e7e5ef26219b687ab8f0d41ed0422125e |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | d20023bbeb42ee6d428a0fac6e0904631f545985a10cdd71a20aa58bc47a4209 |
|
MD5 | 80f1e06563f3af0f090694db58736455 |
|
BLAKE2b-256 | 32af89487c7bbf433f4079044f3dc32f9a9f887597fe04614a37a292e373e16b |