【问题标题】:PyQt ImportError : DLL load failedPyQt ImportError:DLL 加载失败
【发布时间】: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

【问题讨论】:

标签: python pyqt motionbuilder


【解决方案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/ 在上一个答案中提到)。

    【讨论】:

      猜你喜欢
      • 2016-03-03
      • 2020-04-04
      • 2017-07-24
      • 2021-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-15
      • 2020-09-08
      相关资源
      最近更新 更多