提问者:小点点

Qt将Python.h包含到C++中[完整指南](Qt 5.15)(Python 3.9)(Windows)


当我试图在Qt C++程序中包含一个Python脚本时,我在试图包含Python.h时遇到了许多问题,因此我在互联网上四处搜索,试图找到一个解决方案。我发现了很多问题和博客,但它们并没有涵盖我所有的问题,我还是花了好几个小时,也经历了很多挫折。这就是为什么我必须用我的完整解决方案写下一个StackOverflow条目,这样它可能会帮助并可能加速您的所有工作:)


共1个答案

匿名用户

  1. 下载并安装Python https://www.Python.org/downloads/release
  2. 更改项目的。pro文件并添加以下行:
INCLUDEPATH = "C:\Users\Public\AppData\Local\Programs\Python\Python39\include" 
LIBS += -L"C:\Users\Public\AppData\Local\Programs\Python\Python39\libs" -l"python39"
#include <QCoreApplication>
#include <QDebug>

#pragma push_macro("slots")
#undef slots
#include <Python.h>
#pragma pop_macro("slots")

int main(int argc, char *argv[])
{

    qDebug() << "1" ;

    QCoreApplication a(argc, argv);

    Py_Initialize();
    PyRun_SimpleString("from time import time,ctime\n"
                   "print('Today is', ctime(time()))\n");
    Py_Finalize();

    return a.exec();
}
#pragma push_macro("slots")
#undef slots
#include <Python.h>
#pragma pop_macro("slots")

通过这些步骤,我能够让python在Qt中使用64位MinGW和MSVC编译器运行。只有在调试模式下的MSVC仍然有问题。

相关问题


MySQL Query : SELECT * FROM v9_ask_question WHERE 1=1 AND question regexp '(qt|python.h|包|含到|c++|中|完整|指南|qt|5.15|python|3.9|windows)' ORDER BY qid DESC LIMIT 20
MySQL Error : Got error 'repetition-operator operand invalid' from regexp
MySQL Errno : 1139
Message : Got error 'repetition-operator operand invalid' from regexp
Need Help?