使用C++调用Python脚本遇到的问题总结

问题1: PyImport_ImportModule(“脚本文件名(不带.py)”),返回NULL!
解决方案:1、脚本文件所在文件夹是否设置到了搜索路径里面,通过PyRun_SimpleString(“print sys.path”)查看。如果没有,通过PyRun_SimpleString(“sys.path.append(r’路径’)”)添加,一定要加r;一定要加r;一定要加r,防止出现转义。

问题2:背景,项目基于MFC+OpenCASCADE。PyRun_SimpleString(“import numpy”)报错或python脚本里面有import numpy或import scipy的情况下调用 PyImport_ImportModule("脚本文件名”)报错,如下;
使用C++调用Python脚本遇到的问题总结
解决方案:程序里面不要调用OSD::SetSignal(Standard_True),具体原因未知,如果有大神知道希望告知一二!

ps:OSD::SetSignal()捕捉信号,是OpenCASCADE捕捉信号设置相关,为了让应用程序能够像捕捉其他异常一样捕捉系统信号(访问冲突,除以0等),适当的信号处理程序应该在运行时通过方法OSD::SetSignal()安装。

上一篇:分布式存储Ceph(四) Cephx认证机制


下一篇:5.1 Ceph概述