qt中c++调用python是含类的模块导入怎么处理呢 30
导入一个纯函数的文件模块就能导入成功,但如果py文件描述的是一个类的话就会无法倒入模块,,,试了好久都不知道为什么,还有后面就算导入了,py3已经没有创建类对象的接口函数...
导入一个纯函数的文件模块就能导入成功,但如果py文件描述的是一个类的话就会无法倒入模块,,,试了好久都不知道为什么,还有后面就算导入了,py3已经没有创建类对象的接口函数了,所以也不知道该怎么实例化对象...把python改写成一个传出对象的函数之后,还是无法import这个模块...枯萎了...求指点
(是自己写了一个判断导入模块是否成功的函数。) 展开
(是自己写了一个判断导入模块是否成功的函数。) 展开
展开全部
#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(); }
#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(); }
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询