導航:首頁 > 編程語言 > 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出錯相關的資料

熱點內容
墨痕齋是什麼游戲的伺服器 瀏覽:940
word文件如何壓縮大小 瀏覽:277
遵義聯通伺服器地址是什麼 瀏覽:29
ansys約束命令流 瀏覽:814
解壓軟體電腦版如何下載 瀏覽:791
閃電匕首演算法球 瀏覽:692
linuxredis停止命令 瀏覽:670
大麥賬號怎麼加密 瀏覽:113
穿越火線怎麼找伺服器 瀏覽:526
秘密加密社交軟體app 瀏覽:256
c語言編譯器怎麼找文件 瀏覽:835
數學不好能編程嗎 瀏覽:254
微雲里的視頻加密 瀏覽:41
3大加密貨幣交易平台 瀏覽:647
鈑金激光切割機編程 瀏覽:496
vivo手機手電筒app在哪裡 瀏覽:787
單片機晶振電路電容 瀏覽:887
穿越火線河南一區伺服器雲主機 瀏覽:41
文件夾與快捷方式顯示一致 瀏覽:879
幻影伺服器怎麼看金錢 瀏覽:349