C/C++/Qt与 Python 混合编程(5):linux 类平台的 Python环境的获取

要将Python解释器嵌入到应用程序中,找到传递给编译器(和链接器)的正确标志并不一定是件小事,特别是因为Python需要加载作为C动态扩展(dynamic extensions, C dynamic extensions)实现的库模块。因此啊,你必须正确地找到动态扩展库文件.so 或者.o 文件吧。

  1. 查找到编译链接的环境

直接运行 pythonx.y-config 命令即可。例如本系统是 python3.7,所以运行的是 python3.7-config

1.1 查找编译的标志

这些都可以放到 INCLUDE 中

$python3.7-config --cflags

-I/anaconda3/include/python3.7m -I/anaconda3/include/python3.7m -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/anaconda3/include -arch x86_64 -I/anaconda3/include -arch x86_64

1.2 查找链接的标志

这个就是链接所需要的库,QT 中 pro 增加到 LIBS中

$python3.7-config --ldflags

-L/anaconda3/lib/python3.7/config-3.7m-darwin -lpython3.7m -ldl -framework CoreFoundation -Wl,-stack_size,1000000 -framework CoreFoundation

注意:

为了避免几个Python安装之间的混淆(特别是在系统Python和您自己编译的Python之间),建议使用绝对路径的pythonX.Y-config,如下所示。

C/C++/Qt与 Python 混合编程(5):linux 类平台的 Python环境的获取_第1张图片

 

2. 使用sysconfig.get_makefile_filename()查找它的位置和编译选项

在本例中,sysconfig模块是一个有用的工具,可以通过编程提取您希望组合在一起的配置值。

C/C++/Qt与 Python 混合编程(5):linux 类平台的 Python环境的获取_第2张图片

你可能感兴趣的:(python,Qt,Python,与人工智能)