Qt中调用Python的异常

**问题遇到的现象和发生背景 **
Qt 5.15.2 + Python 3.8
使用Python/C API实现C++和Python间的交互
问题相关代码
Main.cpp:

#include 
#include "mainwindow.h"

#include 
#include 

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    //show the UI
    w.show();
    return a.exec();
}


MainWindow.cpp:

#include <Python.h>

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include 
#include 
#include 
#include 
#include 
#include 
#include 

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //num init
    char *num1, *num2;

    //Python config

    //Python init
    Py_Initialize();  //init the python interpreter
    if(!Py_IsInitialized())  //succeed or not
    {
        qDebug() << "Python init failed.";
    }
    //add path into sys
    PyRun_SimpleString("import sys");
    PyRun_SimpleString("sys.path.insert(0,'.')");
    //PyObject_init
    PyObject *module;  // module and func
    module = PyImport_ImportModule("MathPy");  //import module

    //Menubar -> exit
    connect(ui->actionexit,&QAction::triggered,this,[=](){
        Py_Finalize();
        this->close();
    });

    //num -> change
    connect(ui->EditNum1,&QLineEdit::textChanged,this,[&](){
        num1 = ui->EditNum1->text().toUtf8().data();
    });
    connect(ui->EditNum2,&QLineEdit::textChanged,this,[&](){
        num1 = ui->EditNum2->text().toUtf8().data();
    });

    //six buttons
    connect(ui->ButtonPlus,&QPushButton::clicked,this,[&](){
        PyObject *func = PyObject_GetAttrString(module,"plus");
        PyObject *result = PyObject_CallFunction(func,num1,num2);
        int res = PyLong_AsLong(result);
        ui->LabelResult->setText(QString(res));
    });
    connect(ui->ButtonSub,&QPushButton::clicked,this,[&](){
        PyObject *func = PyObject_GetAttrString(module,"sub");
        PyObject *result = PyObject_CallFunction(func,num1,num2);
        int res = PyLong_AsLong(result);
        ui->LabelResult->setText(QString(res));
    });
    connect(ui->ButtonMulti,&QPushButton::clicked,this,[&](){
        PyObject *func = PyObject_GetAttrString(module,"multi");
        PyObject *result = PyObject_CallFunction(func,num1,num2);
        int res = PyLong_AsLong(result);
        ui->LabelResult->setText(QString(res));
    });
    connect(ui->ButtonDiv,&QPushButton::clicked,this,[&](){
        PyObject *func = PyObject_GetAttrString(module,"div");
        PyObject *result = PyObject_CallFunction(func,num1,num2);
        int res = PyLong_AsLong(result);
        ui->LabelResult->setText(QString(res));
    });
    connect(ui->ButtonMax,&QPushButton::clicked,this,[&](){
        PyObject *func = PyObject_GetAttrString(module,"max");
        PyObject *result = PyObject_CallFunction(func,num1,num2);
        int res = PyLong_AsLong(result);
        ui->LabelResult->setText(QString(res));
    });
    connect(ui->ButtonMin,&QPushButton::clicked,this,[&](){
        PyObject *func = PyObject_GetAttrString(module,"min");
        PyObject *result = PyObject_CallFunction(func,num1,num2);
        int res = PyLong_AsLong(result);
        ui->LabelResult->setText(QString(res));
    });

}

MainWindow::~MainWindow()
{
    delete ui;
}


MathPy.py


def plus(num1,num2):
    return num1+num2

def sub(num1,num2):
    return num1-num2

def multi(num1,num2):
    return num1*num2

def div(num1,num2):
    return num1/num2

def max(num1,num2):
    if num1>num2:
        return num1
    else:
        return num2

def min(num1,num2):
    if num1>num2:
        return num2
    else:
        return num1

ui有两个QLineEdit,分别输入两个数字,6个QPushButton分别对应MathPy.py中的六个函数,一个QLabel显示结果
运行结果及报错内容
程序可以运行

img

但是点击按钮的的时候,会在应用程序输出栏输出电脑上某输入法的路径(莫名其妙),然后程序crash

** 我的解答思路和尝试过的方法 **
不知道为什么会出现这种错误,无从下手

我想要达到的结果
程序实现应有功能,正常运行

那你还不如直接用python,python有个模块叫pyqt,可以直接使用qt,非常方便