PyQt ImportError:DLL 加载失败

Posted

技术标签:

【中文标题】PyQt ImportError:DLL 加载失败【英文标题】:PyQt ImportError : DLL load failed 【发布时间】:2016-07-13 07:51:32 【问题描述】:

我正在尝试在 MotionBuilder(Autodesk) 中使用 PyQt4(因为我非常了解 qt,而且我不喜欢 motionbuilder GUI api)。

我使用的是 Windows 64 位 我正在使用 MotionBuilder 2013(64 位) 我为 Python 2.7 安装了 PyQt4(64 位) 更新了我的 Path 变量以指向 PyQt4 dll 位置 (C:\Python27\Lib\site-packages\PyQt4) 打印 sys.path 时,我可以看到 PyQt4 的位置 我可以毫无错误地导入 PyQt4

但是当我尝试这样做时

from PyQt4 import QtGui

我收到以下错误

ImportError: DLL load failed: %1 is not a valid Win32 application.

我尝试安装 PyQt 32 位二进制文​​件,但得到了相同的结果。我的安装根文件夹中有 QtGui4.dll 和 QtGui.pyd。 所以我没有想法,有人可以帮助我吗?

这里有其他人遇到了几乎相同的问题 PyQt4 import QtCore, QtGui ImportError: DLL load failed: %1 is not a valid Win32 application

【问题讨论】:

阅读这篇文章看看是否有帮助。 ***.com/questions/19019720/… 【参考方案1】:

MotionBuilder 2013 支持 Qt 4.7 和 python 2.6.4 (source)。不幸的是,PyQt 网站上的所有二进制文件都适用于 Qt 4.8+ 和 python 2.7 和 3.x。 PySide 项目仍有一些old binaries 可供下载,其中一个可能对您有用(this one maybe)。

您还可以搜索网络,您可能会找到与这些版本匹配的二进制文件 - 这是一个 example(我刚刚通过谷歌搜索找到了这个,我无法保证该网站的合法性或下载)。

您始终可以自己编译 Qt 和 pyQt/PySide。我相信您需要使用 Visual Studio 2010。

【讨论】:

你用的是哪一个?【参考方案2】:

MotionBuilder 2013 只支持 Python 2.6 而 PyQt4 至少是用 Python 2.7 构建的 =P

【讨论】:

【参考方案3】:

更新到 Motionbuilder 2014 或更高版本,它使用 Pyton 2.7。 Motionbuilder 2013 是 Autodesk 推出的最糟糕的版本之一。

您还需要将 pyqt 站点包放入本地 Motionbuilder Python 发行版中:

C:\Program Files\Autodesk\MotionBuilder 2016\bin\x64\python\site-packages

以及 sip.pyd(您可以在此处获取:http://nathanhorne.com/compiled-versions-of-pyqt4-x64/ 在上一个答案中提到)。

【讨论】:

以上是关于PyQt ImportError:DLL 加载失败的主要内容,如果未能解决你的问题,请参考以下文章

pyodbc - ImportError:DLL 加载失败:

ImportError:DLL 加载失败:找不到指定的过程。 (导入sklearn)

ImportError:DLL 加载失败:%1 不是有效的 Win32 应用程序。但是DLL在那里

ImportError:导入 _remap 时 DLL 加载失败

sklearn:ImportError:DLL加载失败:找不到指定的模块

ImportError:导入聚合时DLL加载失败:找不到指定的模块