在我的 Qt C++ 应用程序中使用 Anaconda 的 Python
Posted
技术标签:
【中文标题】在我的 Qt C++ 应用程序中使用 Anaconda 的 Python【英文标题】:Use Anaconda's Python in my Qt C++ application 【发布时间】:2019-03-05 13:02:12 【问题描述】:我打算 从我的 C++ 代码中调用一些 scikit-learn 算法。出于某种原因,我无法弄清楚如何进行集成。我想知道是否有人知道这样做的分步程序。
【问题讨论】:
【参考方案1】:如果您的 C++ 代码适用于 Qt Anaconda's current Qt version),您可以通过添加来包含 Python(在本例中为 3.6)
INCLUDEPATH += /home/[username]/anaconda3/include/python3.6m
LIBS += -L/home/[username]/anaconda3/lib/ -lpython3.6m
到您的 .pro 文件。
如果您需要比 Anaconda 提供的版本更高的 Qt 版本,请查看my question here。现在您应该可以在您的应用程序中包含 Python.h
标头了。
备注:请记住,Python 提供了自己的信号和槽机制,这显然与 Qt 冲突。这就是我添加的原因
CONFIG += no_keywords
到我的 pro 文件,并替换所有出现的信号和插槽,如 here 所述。
【讨论】:
【参考方案2】:我不确定这是否适合您,但我会查看this article。它至少提供了一种从 Qt 应用程序中启动 python 解释器的方法。
我认为这可能会奏效,具体取决于事物的复杂性。
您可以在PythonQt 上找到更多信息。
我不知道它与外部包的配合效果如何。
否则,您可以使用PySide2,它允许您在 python 中使用 Qt5 框架创建 GUI。
希望对你有帮助。
【讨论】:
以上是关于在我的 Qt C++ 应用程序中使用 Anaconda 的 Python的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C++ 语言中将谷歌地图 API 与 MFC 或 QT 一起使用?
需要在 32/64 位 QT C++ 程序中使用卷影复制服务
如果数据库可访问,如何快速检查? (Qt、QML、C++)- Linux