我需要启动一系列python脚本和/或其他Windows可执行文件。其中一些需要Windows系统,其他需要Linux机器。
目前有指定的机器来运行依赖于操作系统的程序。所以我知道我想在哪个地方开始这个项目。
有没有办法从python脚本,本地网络,另一台计算机上启动python脚本(或Windows可执行文件)(例如运行192.168.0.101:/dir/python_script_123.py
?
然后应该运行各种程序的脚本在伪代码中看起来像这样......
linuxip = 192.168.0.101
linuxparam = "required parameter"
winip = 192.168.0.201
winparam = "required parameter"
#option 1 (run all), 2(run linux only), 3(run windows only), 4(run local only)
option = 1
if option == 1:
magic_things.run("linuxip:/dir/linux_script.py" + linuxparam)
magic_things.run("winip:C:\\dir\\windows_prog.exe" + winparam)
subprocess.call(["/dir/local_script.py","parameter"])
subprocess.call(["/dir/another_local_script.py","parameter"])
elif option ==2:
[...]
答案 0 :(得分:4)
您需要从客户端连接到服务器计算机。如果是linux机器,你可以使用SSH。 见http://en.wikipedia.org/wiki/Secure_Shell
假设您运行的linux服务器上有ssh server
,您可以使用包paramiko(http://docs.paramiko.org/en/1.15/api/client.html)连接到计算机并在那里运行脚本。
这看起来像这样:
from paramiko.client import SSHClient
client = SSHClient()
client.load_system_host_keys()
client.connect('linuxip', username='your_user', password='very_secret')
stdin, stdout, stderr = client.exec_command('python /home/your_user/your/path/to/scripty.py')
但是请注意,在脚本中存储密码并不是很安全,使用公钥/私钥认证可能更好(参见wiki文章)。
paramiko包还提供了ssh服务器的选项,所以这可能是你的Windows机器的解决方案,但我不太确定,因为我不再运行任何Windows机器。
希望这有用!
大卫
答案 1 :(得分:0)
在远程服务器上安装ipython
和ipython kernel
,在本地计算机上安装ipython
和ipython kernel
。然后,您可以使用以下设置连接到远程服务器:https://stackoverflow.com/a/48332182/4752883
运行使用subprocess
或os
内置库在远程计算机上运行的任何程序。此外,这与操作系统无关,因此无论您的客户端/服务器是linux
还是Windows
还是Mac