构建集成
要使用Pycairo编译一个Python扩展,您需要知道Pycairo和cairo的位置,以及要传递给编译器和链接器的标志。
变体:
与变体2类似,但不需要加载pycairo,这在Windows上可能会有问题,因为从Python3.8开始,默认情况下cairo不在DLL搜索路径中。
def get_include_path(): import os from importlib.util import find_spec spec = find_spec("cairo") assert spec is not None return os.path.join(os.path.dirname(spec.origin), 'include')
- 编译器标志:
python -c "get_include_path()"
pkg-config --cflags cairo
- 链接器标志:
pkg-config --libs cairo
变体:
仅在1.16.0版之后才可用。
虽然Pycairo安装了pkg-config文件,但如果是Virtualenvs,则安装到用户目录,或者使用轮子/鸡蛋时,pkg-config将无法找到.pc文件。这个
get_include()
只要Pycairo在您的Python搜索路径中,函数就应该在所有情况下都有效。- 编译器标志:
python -c "import cairo; print(cairo.get_include())"
pkg-config --cflags cairo
- 链接器标志:
pkg-config --libs cairo
变体:
这适用于旧版本,但具有上面提到的限制。如果您想要支持旧版本,或者如果您的模块不需要Virtualenv/Pip支持,可以使用它作为备用。
- 编译器标志:
pkg-config --cflags py3cairo
- 链接器标志:
pkg-config --libs py3cairo