Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
网络上的Python subprocess.popen_Python_Network Programming_Subprocess - Fatal编程技术网

网络上的Python subprocess.popen

网络上的Python subprocess.popen,python,network-programming,subprocess,Python,Network Programming,Subprocess,Python subprocess.popen在本地机器上非常简单,但是可以通过网络调用它吗 例如,假设我有3台电脑,一台叫做工作站电脑,另一台叫做node1电脑和node2-pc 是否可以从工作站pc调用(例如,node1 pc)上的进程,最好不必在node1 pc上运行特殊的服务器软件 无论如何,非常感谢您的回复 吉尔斯 编辑 忘了提到我正在使用Python 3,我建议使用以下两种方法之一: 面料示例: from fabric.api import env, run env.hos

Python subprocess.popen在本地机器上非常简单,但是可以通过网络调用它吗

例如,假设我有3台电脑,一台叫做工作站电脑,另一台叫做node1电脑和node2-pc

是否可以从工作站pc调用(例如,node1 pc)上的进程,最好不必在node1 pc上运行特殊的服务器软件

无论如何,非常感谢您的回复

吉尔斯

编辑
忘了提到我正在使用Python 3,我建议使用以下两种方法之一:

面料示例:

from fabric.api import env, run

env.hosts = ['host1', 'host2']

def mytask():
    run('ls /var/www')

Fabric可能是一种方式,但是,在*nix环境中,没有什么可以阻止您通过
ssh
执行远程命令

import subprocess
p = subprocess.Popen(['ssh', 'node1-pc', 'ls', '-ltr', '/etc'], stdout=subprocess.PIPE)
out, err = p.communicate()

out
将包含远程进程的标准输出。

否您需要在3台联网机器之间创建消息传递系统。。。可能是芹菜之类的东西……谢谢你的回复,但我忘了告诉曼蒂翁我正在使用Python 3,而且Fabric不能与之配合使用!忘了提到我使用Python3,所以我没有织物!我尝试了Popen调用,但得到了一个错误,无论我尝试什么“FileNotFoundError:[WinError 2]系统找不到指定的文件”Windows不同。您需要使用合适的ssh客户端和服务器。