Maya で作成された外部ソフトウェアから Maya にスクリプトを送信する必要があります。私は小さな例でこれをやろうとしました:
import socket
import time
from os.path import abspath
ADDR=('127.0.0.1',666)
def execute_file(fileFullPath):
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(ADDR)
command = "execfile('%s')" % (fileFullPath)
client.send(command)
data = client.recv(1024)
print data
client.close()
time.sleep(.1)
return data
if __name__ == '__main__':
py_file = 'hello_world.py'
py_file = abspath(py_file)
execute_file(py_file)
hello_world.py には次のものがあります。
print 'hello world'
ただし、これを実行すると、「hello world」が Maya で 2 回出力されます。
私が試した別のことは次のとおりです。
if __name__ == '__main__':
print 'hello world'
しかし、それはまったく実行されません。
最後に、メソッドに印刷を入れて、次のように呼び出すことも試みました。
command = "execfile('%s')" % (fileFullPath)
client.send(command)
data = client.recv(1024)
client.send("exec('start()')")
しかし、名前 'start' is not definedエラーが表示されます
誰かがなぜこれが起こるのか知っていますか、またはこれを回避する方法について少なくとも考えを持っていますか?
よろしくお願いします。