导航:首页 > 编程语言 > qt调用python出错

qt调用python出错

发布时间:2023-05-16 13:51:53

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

#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* pMole = PyImport_ImportMole(
test
);
if
(!
pMole) { printf(
Cant open python file!\n
);
return
; }
//
获取test模块中的hello函数
PyObject* pFunhello= PyObject_GetAttrString(pMole,
hello
);
//
注释掉的这部分是另一种获得test模块中的hello函数的方法
//
PyObject* pDict = PyMole_GetDict(pMole);
//
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(); }

② QT中调用Python

如果你是嵌入的话,应该没问题。python的库会暴露c api的,你的qt程序照着python文档中的embedded章节就好。 看样子,你的是linux下的,不过一般头文件就是include/python.h,怎么会是include/python2.7呢?你写错了吧。库文件应该是在lib下面。

③ Python 使用Qt 报错:No mole named 'PySide2'

Qt 生成Python的项目后,运行报错 No mole named 'PySide2'

这个时候配唯需要安装对应的模块,旁虚执行命令

打开命令行,进入生成项目的根目录,运卖燃运行文件,这里要注意如果是 pip 安装的,对应的是系统自带的 python 命令,一般是python2.+ 的版本。 如果是pip3 安装, 对应的 python3 命令,如果使用错命令,依然会报错

④ ubuntu下在Qt4.8中添加python2.7库出了问题该怎么改

做一个很久没人维护的项目的二次开发,在往项目中添加python库的时候皮纯提示有问燃郑咐题,问题如下:

:-1: error: /home/luoyi/Sgems/SGeMS/GsTLAppli/main/../../../../../../usr/local/lib//libpython2.7.a(dynload_shlib.o): undefined reference to symbol 'dlsym@@GLIBC_2.2.5'

/usr/丛宏lib/x86_64-linux-gnu/libdl.so:-1: error: error adding symbols: DSO missing from command line

:-1: error: collect2: error: ld returned 1 exit status
请问有没有大神遇到过的,求教啊...进度条卡到99%的感觉太郁闷了
感觉是链接库缺失,少GCC环境?

⑤ python使用pyqt时导入错误!!

方法一
from PyQt4 import *
app = PyQt4.QtGui.QApplication(sys.argv)

⑥ linux下用qt需要用到python在Py_Initialize就报错

你在链接的时候必须提供正确的链接参数 (需要把 libpython 链接到你的可执行程序才能正确找到python C API)


具体可以用

pythonX.Y-config--cflags

得到编译参数。


pythonX.Y-config--ldflags

得到链接参数


比如在我的系统上python2.7得到的参数是

$python2.7-config--cflags
-I/usr/include/python2.7-I/usr/include/python2.7-fno-strict-aliasing-march=x86-64-mtune=generic-O2-pipe-fstack-protector-strong--param=ssp-buffer-size=4-DNDEBUG-march=x86-64-mtune=generic-O2-pipe-fstack-protector-strong--param=ssp-buffer-size=4

$python2.7-config--ldflags
-lpython2.7-lpthread-ldl-lutil-lm-Xlinker-export-dynami

那么就在编译和链接的时候分别加入上面列出的参数,就可以了 (注意,不要加我例子中打印出来的内容,要加你自己执行pythonX.Y-config 后得到的内容)。

⑦ Qt下无法调用python,打不开文件为什么

#include<QCoreApplication>
//包含调用Python相应的头文件
#include<Python.h>

intmain(intargc,char*argv[])
{
QCoreApplicationa(argc,argv);

//初始化Python解释器,这是调用操作的第一步
Py_Initialize();
if(!Py_IsInitialized()){
return-1;
}

//执行单句Python语句,用于给出调用模块的路径,梁旅否则将无法找到相应的调用模块
PyRun_SimpleString("importsys");
PyRun_SimpleString("sys.path.append('./'碧兄)");

//获取qt_python_fun.py模块的指针
PyObject*pMole=PyImport_ImportMole("qt_python_fun");
if(!pMole){
printf("Can'topenpythonfile ");
return-1;
}

//获取hello函数的指针
PyObject*pFunhello=PyObject_GetAttrString(pMole,"hello");
if(!pFunhello){
printf("Getfunctionhellofailed ");
return-1;
}

//调用函数,传入参数为NULL
PyObject_CallFunction(pFunhello,NULL);
//销毁Python解释器,这是调用的最后一步
Py_Finalize();
returna.exec();
}


作者:sleepyjoker
链接:http://www.jianshu.com/p/cfe44f56bb90
来源:简书
着作悔渣袭权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

⑧ 用C++/Qt 写Python调试器遇到的问题

在C++中,“类函数指针”和传统的“函数指针”,是两个完全不同的东西。

你取一个类的成员函数的地址,得到的是一个类函数指针,也叫成员函数指针。即使你的成员函数定义看起来和普通函数原型完全一样,它也和这个原型的普通函数指针完全不同,彼此之间不能转换。

PyEval_SetTrace要求传入的是一个传统的函数指针,你传入一个类函数指针,当然是不行的。编译器报错是说无法将一个类函数指针转换为函数指针。

C++的类函数指针,是一个非常难用的东西,有非常多奇怪的特性,而且不同编译器对它的支持大不相同,是C++着名的复杂性来源之一,建议不要使用。

你想要的东西,实际上是一个“委托”的概念,不过可惜的是C++并不支持委托。使用boost::function可以实现类似功能,但python的C API接口却不支持boost::function,所以也不行。

你这种情况,最简单的方法还是用传统的函数指针,使用普通函数包装下类的成员函数,然后把普通函数的指针传给python。

阅读全文

与qt调用python出错相关的资料

热点内容
安卓手机微信发不出视频怎么弄 浏览:229
压缩机专用工具 浏览:575
qtcreator可以编译cp吗 浏览:405
小项目是云服务器还是本地好 浏览:14
墨痕斋是什么游戏的服务器 浏览:942
word文件如何压缩大小 浏览:279
遵义联通服务器地址是什么 浏览:29
ansys约束命令流 浏览:814
解压软件电脑版如何下载 浏览:791
闪电匕首算法球 浏览:692
linuxredis停止命令 浏览:670
大麦账号怎么加密 浏览:113
穿越火线怎么找服务器 浏览:526
秘密加密社交软件app 浏览:256
c语言编译器怎么找文件 浏览:836
数学不好能编程吗 浏览:254
微云里的视频加密 浏览:41
3大加密货币交易平台 浏览:647
钣金激光切割机编程 浏览:496
vivo手机手电筒app在哪里 浏览:787