“Module use of python34.dll conflicts with this version of Python”

做~自己de王妃 提交于 2019-12-11 02:05:10

问题


My knowledge of Python is still pretty basic, and I am only now trying to wrap my head around how to use / call libraries from within Maya. (Because I need to create a basic UI from QT Designer and have it be opened in Maya after converting it to a .py file)

After I learned to properly convert a .ui to a .py, I now get this error in Maya

"Module use of python34.dll conflicts with this version of Python"

I tried following what was said here and here, but even then - after setting these environment variables...

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

PYTHONPATH = C:\Python34

... I a still unable to run a basic .py file. In fact - as long as the PYTHONHOME variable is in effect, Python from within Maya no longer does anything.

This code below is the resulting python file that I got from converting the .ui file that I saved out of QT Designer.

# -*- 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_())

I've come across some different online notes that advised the use of PySide, and after trying to use:

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

I still couldn't test if this works, because apparently QtWidgets isn't a module?

I'm pretty lost. The bigger picture is that I just want to be able to run a ui created from QT Designer from Maya's script editor. I have no idea where to begin with learning about libraries. Would anyone here be kind enough to give some advice?

Additional info:

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

Thank you for your time.


回答1:


Maya's python interpreter is in the 2.7 series (or 2.6 for Maya 2013 and earlier). Your PYTHONPATH is pointing at a python 3.4 install. You also want to make sure that if your Python 3.4 is in PATH it comes later than the maya python install location. This is all to makes sure that Maya doesn't get confused and try to run python 3 code or dlls which it cannot handle.

Also, maya 2016 is running on PyQT4. Maya 2017 runs on PyQT5. So you'll probably want to use a PyQT4 version of designer

Related:

  • UIC / PyQT4 example
  • using UIC files in Maya pyQT 4
  • re: 2017/QT5


来源:https://stackoverflow.com/questions/42107296/module-use-of-python34-dll-conflicts-with-this-version-of-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!