PyImport_ImportModule("PyQt4.QtGui") 失败

Posted

技术标签:

【中文标题】PyImport_ImportModule("PyQt4.QtGui") 失败【英文标题】:PyImport_ImportModule("PyQt4.QtGui") fails 【发布时间】:2010-05-11 15:26:50 【问题描述】:

我有一个 C++ windows 应用程序正在尝试加载 PyQt4 对象,类似于 PyQt4 在 QtDesigner 中提供 python 小部件的方式。该应用程序可以很好地加载其他 Python 模块,但无法加载 PyQt4.QtGui。此外,使用直接的 Python,我可以很好地加载 PyQt4.QtGui。尝试时的调试输出是:

'devenv.exe': Loaded 'C:\Python26\Lib\site-packages\PyQt4\QtGui.pyd', Binary was not built with debug information.
'devenv.exe': Loaded 'C:\Qt\4.6.2\bin\QtCore4.dll', Binary was not built with debug information.
First-chance exception at 0x77747e52 in devenv.exe: 0xC0000139: Entry Point Not Found.
'devenv.exe': Unloaded 'C:\Python26\Lib\site-packages\PyQt4\QtGui.pyd'
'devenv.exe': Unloaded 'C:\Qt\4.6.2\bin\QtCore4.dll'

看起来它试图在 QtCore4.dll 之后加载另一个模块,但失败了。任何想法为什么会发生这种情况?

【问题讨论】:

【参考方案1】:

经过一番调查,似乎我的 C++ 应用程序正在使用一次安装的 Qt 中的 Qt dll,而 Python 正在尝试加载不同的 Qt dll - 与 PyQt 一起安装的那些。我怀疑发生故障是因为同一个进程正在尝试两个几乎相同的 dll。

【讨论】:

以上是关于PyImport_ImportModule("PyQt4.QtGui") 失败的主要内容,如果未能解决你的问题,请参考以下文章

PyImport_ImportModule 和 import 语句是不是加载到不同的命名空间中?

C调用python——PyImport_ImportModule返回空指针

Julia Plots: PyCall.PyError("PyImport_ImportModule\n\npyimport 找不到 Python 包 matplotlib.pyplot

python boost scope导致NoneType错误

简单队列

STL容器 -- Queue