我需要从Maya中编写的外部软件向脚本发送一个脚本。我试着用一个小例子来做到这一点:与execfile一起发送时,Python脚本在Autodesk 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'
Hovewer,当我执行这一点,“世界你好”在玛雅印两次。
我想另一件事是:
if __name__ == '__main__':
print 'hello world'
但后来它根本不会执行。
最后,我也试图与把打印的方法,并调用它像这样:
command = "execfile('%s')" % (fileFullPath)
client.send(command)
data = client.recv(1024)
client.send("exec('start()')")
但后来我得到一个名“开始”没有定义错误
有人知道为什么会发生这种情况,或者至少有一个想法可以避免这种情况发生?
在此先感谢您的帮助。
感谢您的回答。看起来不错。现在我患了流感,但尽快我可以仔细观察,看看你的建议是否适合我。无论如何,我会让你(+社区)知道。 – DarkPurpleShadow