我有一个使用 Qt 4.x 的核心、GUI 和网络模块的 C++ 应用程序。它在用户执行某些操作时调用 python 回调,重点是用户可以通过编写 python 代码来自定义这些回调。
当我尝试在这样的回调中从 PySide 导入 QtNetwork 模块时:
from PySide import QtNetwork
我收到以下错误:
dll load failed : the specified procedure could not be found
请注意,当我导入 QtCore 和 QtGui 模块时,我没有收到错误消息。
我使用依赖walker试图找出问题所在。
当应用程序启动时,它会加载,QtCore4.dll
它们是放置在我的应用程序目录中的C++ Qt DLL 。
当我触发从 PySide 导入 QtNetwork 的 python 代码的回调时,它会加载然后给我错误:QtGui4.dll
QtNetwork4.dll
QtNetwork.pyd
LoadLibraryExA("C:\Dev\Python27\lib\site-packages\PySide\QtNetwork.pyd", 0x00000000, LOAD_WITH_ALTERED_SEARCH_PATH) returned NULL. Error: the specified procedure could not be found (127).
QtNetwork.pyd
我的:依赖树
似乎表明它使用已加载的 C++ DLL而不是 PySide 的。我想那是因为他们的名字是一样的。
有没有办法让它加载正确的 DLL(c:\dev\python27\lib\site_package\pyside\
目录中的那些)?
另外,为什么这种冲突与 QtCore 和 QtGui 无关?