C++调用Python3.6的配置
在用C++做立体匹配算法的时候,需要查看一些算法中间数据,如Matching Curve,由于Python在进行数据处理显示的时候非常方便,于是想用C++来调用Python的matplotlib进行数据显示。
我用的是visual studio 2017 + Python3.6,Python用的是Anaconda。
visual studio环境配置
在VS中新建一个C++控制台程序,配置相关的项目属性(注意是64位工程)
项目 -> 属性 -> C/C++ -> 常规 -> 附件包含目录(根据实际情况来定,我的是"D:\Anaconda3\include")
项目 -> 属性 -> 连接器 -> 常规 -> 附加库目录(我的是"D:\Anaconda3\libs")
项目 -> 属性 -> 连接器 -> 输入 -> 附加依赖项
QT环境配置
matplotlib画图实际上是调用了QT,因此需要配置QT的运行环境(不需要下载安装QT),否则会报
错
This application failed to start because it could not find or load the QT platform plugin "windows" in ""
解决办法是新建一个QT环境变量
其他坑
1.C++调用Python时,默认路径为项目生成目录(“x64\Release”),因此Python脚本应放在生成目录下,而不是工程目录下,不然会找不到脚本文件,这个可以通过如下代码验证
wcout<<Py_GetPath()<<endl
2.Python文件不能命名为test,否则找不到函数名
3.若Python中有语法错误,则不能导入,所以正确的做法是先在对应编译器中开发验证Python脚本,再使用C++进行调用
4.Debug工程会提示找不到python36_d.lib,在"Anaconda\libs"目录下,将python36.lib复制一份,并命名为python36_d.lib即可