多字节字符集32位c++调用pyimport_importmodule失败
·
记录实验过程
要注意以下内容:
1. 是否正确配置了Module路径
2. python环境和C++环境要一致,当然网上应该有比如32位的C++如何调用64位的python,具体没有试过,但是32位C++中配置的python环境肯定是32位的,不然link就会出错,所以最好环境要保持一致
3. 编码方式也要注意,转换成python能识别的
4.以上方法都试过并且检查过之后,发现有的帖子说,python脚本里面import的内容没有安装也会报错 --> 安装了对应的32位的包之后,放到C++的环境下还是不行
5. 怀疑脚本本身的问题,用别的没有任何内容的脚本尝试,返回是非空,是正常的
6. 开始在本地用指定的python环境跑指定脚本
-->检查配置python环境是否正确,因为需要将整个python环境一起打包进去,所以要确保需要用到的东西都要在
用C++文件夹下的python环境跑脚本,果然有问题,一个一个尝试,发现是Dlls没有放进去,所以一般python环境应该只要包含以下内容就够了

7. 返回正常之后,Call python函数的返回值又变成空了,这个基本就是脚本本身问题,检查发现是参数没有没有对上,C++里面写了参数,python脚本中的函数需要接收的参数
PyObject* pReturn = PyObject_CallObject(pFunc, pArgs);
更多推荐
所有评论(0)