在一个系统中运行的Python脚本将在另一个系统中执行结果

2024-09-29 10:20:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个python脚本,当执行该脚本时,它将在另一台计算机中打开一个Maya文件,并在那里创建它的playblast。这可能吗?我还想补充一点,我使用的系统都是Windows。谢谢


Tags: 文件脚本windows系统计算机mayaplayblast
3条回答

廉价rpc的最后一个选择是运行maya.独立来自maya python(“mayapy”,通常安装在maya二进制文件旁边)。独立程序将运行在一个常规的python脚本中,因此它可以使用KimiNewts answer中的任何远程过程技巧。在

您还可以使用basicpython创建自己的小型服务器。服务器可以使用maya命令端口,或者使用内置的wsgiref模块的wsgi serverHere是一个例子,它使用在独立的内部运行的wsgiref通过http远程控制maya。在

为了在远程计算机上执行某些操作,必须在那里运行某种服务。在

如果是linux机器,您可以通过ssh连接并运行命令。在python中,可以使用paramiko

import paramiko
ssh = paramiko.SSHClient()
ssh.connect('127.0.0.1', username='foo', password='bar')
stdin, stdout, stderr = ssh.exec_command("echo hello")

否则,您可以使用python服务,但必须事先运行它。 您可以使用前面提到的芹菜,或ZeroMQ,或者更简单地使用RPyC

只需在目标计算机上运行rpyc_classic.py脚本,然后就可以在其上运行python:

^{pr2}$

或者,您可以创建一个自定义RPyC服务(请参阅文档)。在

最后一个选择是像前面建议的那样使用HTTP服务器。如果你不想开始安装所有的东西,这可能是最简单的。您可以使用Bottle,这是python中的一个简单HTTP框架:

服务器端:

from bottle import route, run

@route('/run_maya')
def index(name):
    # Do whatever
    return 'kay'

run(host='localhost', port=8080)

客户端:

import requests
requests.get('http://remote_server/run_maya')

是的,这是有可能的,我一直在几台电脑上这样做。首先你需要进入电脑。这已经得到了回答。然后从壳中调用maya,如下所示:

maya -command myblast -file filetoblast.ma

你需要我的blast.mel在脚本路径中的某个地方

在我的blast.mel公司名称:

^{pr2}$

在此文件中配置您需要的内容,如着色选项等。请注意,调用Maya GUI会占用一个许可证,而“播放预览”需要该GUI(您可以通过不使用默认GUI来缩短时间)

相关问题 更多 >