0

我正在尝试在 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

4

3 回答 3

1

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

于 2016-03-25T14:53:56.400 回答
1

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

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

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

于 2016-03-25T16:46:38.280 回答
0

更新到 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-04-28T20:52:48.697 回答