Qt c++ 应用程序中的 Python 解释器 - numpy MSVC 调试
Posted
技术标签:
【中文标题】Qt c++ 应用程序中的 Python 解释器 - numpy MSVC 调试【英文标题】:Python interpreter in Qt c++ application - numpy MSVC debug 【发布时间】:2018-03-08 14:44:49 【问题描述】:我正在开发一个在 Windows 上嵌入 python 解释器的 Qt 应用程序。 我使用 MSVC 2015 作为构建工具和 Python 3.6.4。当我在 Windows 上安装 Python 时,我还安装了调试版本。之后我使用 pip 命令安装了 numpy。
作为测试,我正在尝试执行简单的 python 函数(如下所述),当我使用发布版本时一切正常。
def testfunction():
import sys
print(sys.path)
import numpy as np #problematic row in debug
y = np.float([1.1, 2.3, 3.1]) #problematic row in debug
print(y)
return
相反,当我在调试模式下构建 C++ 应用程序时,程序无法执行脚本。我认为问题是由numpy产生的。如果我删除了 import numpy 和数组的创建,它会毫无问题地执行。 有没有办法用 MSVC 的调试符号构建 numpy?
非常感谢您的帮助。
【问题讨论】:
【参考方案1】:我知道这个问题有些陈旧,但它可能对其他人有所帮助。我刚刚遇到了同样的问题。
您必须在调试模式下从源代码构建 numpy。从他们的 Github repo 上下载最新版本的 numpy 源,解压它们,然后运行:
python_d.exe setup.py build --debug install
这样,您的调试版本的 python 就可以使用 numpy 的调试版本,并且导入将起作用。请注意,python 的发布版本现在将无法导入 numpy。我无法让 numpy 的调试版本和发布版本同时工作。
【讨论】:
以上是关于Qt c++ 应用程序中的 Python 解释器 - numpy MSVC 调试的主要内容,如果未能解决你的问题,请参考以下文章
PyQt4 不可见 C++ 实例化的 QApplication
为啥 python 3.2 的 Python.h 必须首先与 Qt4 一起包含