qt中c++调用python是含类的模块导入怎么处理呢 30

导入一个纯函数的文件模块就能导入成功,但如果py文件描述的是一个类的话就会无法倒入模块,,,试了好久都不知道为什么,还有后面就算导入了,py3已经没有创建类对象的接口函数... 导入一个纯函数的文件模块就能导入成功,但如果py文件描述的是一个类的话就会无法倒入模块,,,试了好久都不知道为什么,还有后面就算导入了,py3已经没有创建类对象的接口函数了,所以也不知道该怎么实例化对象...把python改写成一个传出对象的函数之后,还是无法import这个模块...枯萎了...求指点
(是自己写了一个判断导入模块是否成功的函数。)
展开
 我来答
EatingKun
2019-03-24 · TA获得超过5815个赞
知道大有可为答主
回答量:3185
采纳率:83%
帮助的人:861万
展开全部
#include <QCoreApplication>
#include
<Python.h>
#include
<iostream>
using
namespace
std;
int
main(
int
argc,
char
argv[]) { QCoreApplication a(argc, argv);
//
初始化python模块
Py_Initialize();
if
( !
Py_IsInitialized() ) {
return
; }
//
导入test.py模块
PyObject* pModule = PyImport_ImportModule(
test
);
if
(!
pModule) { printf(
Cant open python file!\n
);
return
; }
//
获取test模块中的hello函数
PyObject* pFunhello= PyObject_GetAttrString(pModule,
hello
);
//
注释掉的这部分是另一种获得test模块中的hello函数的方法
//
PyObject* pDict = PyModule_GetDict(pModule);
//
if (!pDict) {
//
printf("Cant find dictionary.\n");
//
return -1;
//
//
PyObject* pFunhello = PyDict_GetItemString(pDict, "hello");
if
(!
pFunhello){ cout
<<
Get function hello failed
<<
endl;
return
; }
//
调用hello函数
PyObject_CallFunction(pFunhello,NULL);
//
结束,释放python
Py_Finalize();
return
a.exec(); }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式