【问题标题】:"Module use of python34.dll conflicts with this version of Python"“模块使用 python34.dll 与此版本的 Python 冲突”
【发布时间】:2017-06-25 17:26:57
【问题描述】:

我对 Python 的了解仍然很基础,我现在才开始尝试思考如何在 Maya 中使用/调用库。 (因为我需要从 QT Designer 创建一个基本的 UI,并在将其转换为 .py 文件后在 Maya 中打开它)

在学会正确地将 .ui 转换为 .py 后,我现在在 Maya 中遇到此错误

“模块使用python34.dll与此版本的Python冲突”

我尝试按照 herehere 所说的进行操作,但即便如此 - 在设置了这些环境变量之后...

PYTHONHOME = C:\Program Files\Autodesk\Maya2016\bin\maya.exe

PYTHONPATH = C:\Python34

...我仍然无法运行基本的 .py 文件。事实上 - 只要 PYTHONHOME 变量有效,Maya 中的 Python 就不再执行任何操作。

下面的代码是我从 QT Designer 中转换保存的 .ui 文件得到的 Python 文件。

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'test.ui'
#
# Created by: PyQt5 UI code generator 5.4.1
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(400, 300)
        self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
        self.buttonBox.setGeometry(QtCore.QRect(30, 240, 341, 32))
        self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
        self.buttonBox.setObjectName("buttonBox")

        self.retranslateUi(Dialog)
        self.buttonBox.accepted.connect(Dialog.accept)
        self.buttonBox.rejected.connect(Dialog.reject)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Dialog = QtWidgets.QDialog()
    ui = Ui_Dialog()
    ui.setupUi(Dialog)
    Dialog.show()
    sys.exit(app.exec_())

我遇到了一些建议使用 PySide 的不同在线说明,并在尝试使用后:

from PySide.QtCore import *
from PySide.QtGui import *

我仍然无法测试这是否有效,因为显然 QtWidgets 不是模块?

我很迷茫。更大的图景是我只想能够从 Maya 的脚本编辑器中运行从 QT Designer 创建的 ui。我不知道从哪里开始学习图书馆。有没有人好心给点建议?

附加信息:

I am using Maya 2016, running on a Windows 10 64 bit OS.
I also have a Python 2.7 in my C: drive 
And I am using PyQt5-5.4.1-gpl-Py3.4-Qt5.4.1-x64

感谢您的宝贵时间。

【问题讨论】:

    标签: pyside python-3.4 maya pyqt5 qtwidgets


    【解决方案1】:

    Maya 的 Python 解释器属于 2.7 系列(或 Maya 2013 及更早版本为 2.6)。您的 PYTHONPATH 指向 python 3.4 安装。您还需要确保如果您的 Python 3.4 位于 PATH 中,它会晚于 maya python 安装位置。这一切都是为了确保 Maya 不会感到困惑并尝试运行它无法处理的 python 3 代码或 dll。

    此外,maya 2016 正在 PyQT4 上运行。 Maya 2017 在 PyQT5 上运行。所以你可能想要使用 PyQT4 版本的设计器

    相关:

    【讨论】:

    • 谢谢@theodox 听取了您的建议,得到了一份 qt4 (PyQt4-4.10-gpl-Py2.7-Qt4.8.4-x64) 的副本。我卸载了python 3.4(保留2.7)并确保我清除了路径。我将pyQT4文件夹复制到maya站点的Packages文件夹中,我什至包括了我从(WinPython-64bit-3.4.3.7)获得的sip.pyd并放置了它在同一个文件夹中。检查路径,确保最后输入了 c:\Python27,并创建了一个指向 c:\Python27 的 PYTHONPATH 变量。 -- 但现在我明白了 -- ImportError: file <maya console> line 12: DLL load failed: The specified module could not be found.
    • Maya 包含 PyQT4——您不需要添加它!而且您可能应该将 PYTHONPATH 设置为指向 maya python 位置
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-09
    • 2017-06-27
    • 2015-07-13
    相关资源
    最近更新 更多