Maya 2023 python 3 can't run mel2py script

Maya 2023 python 3 can't run mel2py script

teddude75
Collaborator Collaborator
254 Views
0 Replies
Message 1 of 1

Maya 2023 python 3 can't run mel2py script

teddude75
Collaborator
Collaborator

These are the errors I get. 

 

# File "<maya console>", line 99, in <lambda>
# File "<maya console>", line 41, in convert
# File "C:\Program Files\Autodesk\Maya2023\Python\lib\site-packages\pymel\tools\mel2py\__init__.py", line 428, in mel2pyStr
# results = mparser.parse(data)
# File "C:\Program Files\Autodesk\Maya2023\Python\lib\site-packages\pymel\tools\mel2py\melparse.py", line 3065, in parse
# translatedStr = parser.parse(data, lexer=self.lexer, debug=debug)
# File "C:\Program Files\Autodesk\Maya2023\Python\lib\site-packages\pymel\util\external\ply\yacc.py", line 333, in parse
# return self.parseopt_notrack(input, lexer, debug, tracking, tokenfunc)
# File "C:\Program Files\Autodesk\Maya2023\Python\lib\site-packages\pymel\util\external\ply\yacc.py", line 1120, in parseopt_notrack
# p.callable(pslice)
# File "C:\Program Files\Autodesk\Maya2023\Python\lib\site-packages\pymel\tools\mel2py\melparse.py", line 2803, in p_command
# t[0] = format_command(t[1], t[2], t)
# File "C:\Program Files\Autodesk\Maya2023\Python\lib\site-packages\pymel\tools\mel2py\melparse.py", line 438, in format_command
# pargs.append(Token('%s=%s' % (flag, value), None, flag.lineno))
# AttributeError: 'str' object has no attribute 'lineno'

 

My script works in 2020 in python 2 fine. I just want know why I can't run this script. Is it something to do with how string are written in python 3? I don't know. Can someone help?

####"""from imp import reload
#####import mel2PymelUI as mel2PymelUI
###reload (mel2PymelUI)
##mel2PymelUI.UI()"""


import sys
import PySide2
from PySide2 import QtGui, QtCore, QtWidgets
from PySide2.QtGui import QIcon, QFont


from PySide2 import QtCore
from PySide2 import QtGui
from PySide2 import QtWidgets
import maya.OpenMayaUI as mui

import pymel.core as pm
import pymel.tools.mel2py as mel2py
import shiboken2
from shiboken2 import wrapInstance
textbox_out = ''


def getMayaWind():
main_window_ptr = mui.MQtUtil.mainWindow()
return wrapInstance(int(main_window_ptr), QtWidgets.QWidget)


def convert(meltext):
try:
pmAnswer = mel2py.mel2pyStr(meltext, pymelNamespace='pm')
# get rid of old all
pmCode = pmAnswer.replace("pymel.all", "pymel.core")
pmCode = pmCode.replace("pm.pm.cmds.", "pm.")
print(pmCode)
global textbox_out
textbox_out.setPlainText(pmCode)
except:
pmCode = '## Error converting ##\n## Check Script Editor for details ##'
textbox_out.setPlainText(pmCode)
raise
return pmCode


def UI():
ui_name = "ui_window"
# check existing
if pm.window(ui_name, exists=True):
pm.deleteUI(ui_name, wnd=True)
# window
ui_parent = getMayaWind()
ui_window = QtWidgets.QMainWindow(ui_parent)
ui_window.setObjectName(ui_name)
ui_window.setFixedWidth(800)

# widget
ui_widget = QtWidgets.QWidget()
ui_window.setCentralWidget(ui_widget)

# layout
ui_layout = QtWidgets.QVBoxLayout(ui_widget)

# create font
ui_font = QtGui.QFont()
ui_font.setPointSize(12)
ui_font.setBold(False)
code_font = QtGui.QFont()
code_font.setFamily("Courier")
code_font.setPointSize(8)

# textbox
textbox_in = QtWidgets.QTextEdit()
textbox_in.resize(480, 280)
textbox_in.setFont(code_font)
ui_layout.addWidget(textbox_in)
# textbox
global textbox_out
textbox_out = QtWidgets.QTextEdit()
textbox_out.resize(480, 280)
textbox_out.setFont(code_font)
ui_layout.addWidget(textbox_out)

# button
ui_button_convert = QtWidgets.QPushButton(" Convert ")
ui_layout.addWidget(ui_button_convert)
ui_button_convert.setFont(ui_font)

ui_button_convert.setStyleSheet("background-color: rgb(33,55,55);")
ui_button_convert.clicked.connect(lambda: convert(textbox_in.toPlainText())
)

ui_window.show()

 

0 Likes
255 Views
0 Replies
Replies (0)