# Maya
import pymel.core as pm
class MayaPort(object):
@classmethod
def get_info(cls):
print('''
----------------------
{} port :
number is : {}
status is : {}
----------------------\n'''.format(cls._type.capitalize(), cls._num, cls._status))
@classmethod
def set_status(cls, status):
status = bool(status)
already = cls._status is status
already_to_str = {True : ' already ', False : ' '}
if not already:
if status:
pm.commandPort(n = ':%d' %cls._num, stp = cls._type)
else:
pm.commandPort(n = ':%d' %cls._num, cl = 1)
cls._status = status
if status:
pm.warning('{0} port is{1}open.'.format(cls._type.capitalize(), already_to_str[already]))
else:
pm.warning('{0} port is{1}close.'.format(cls._type.capitalize(), already_to_str[already]))
class MelPort(MayaPort):
_type = 'mel'
_num = 7001
_status = pm.commandPort(':%d' %_num, q = 1)
class PythonPort(MayaPort):
_type = 'python'
_num = 7002
_status = pm.commandPort(':%d' %_num, q = 1)
if __name__ == '__main__':
PythonPort.get_info()
#PythonPort.set_status(1)
#PythonPort.set_status(0)
# IDE
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('127.0.0.1', 7002))
p = s.send
p('print "IDE is linked to python."')
参考:
https://blog.csdn.net/lulongfei172006/article/details/53143463