如何通过本地终端远程执行另一台电脑上的Python函数?
从本地Intel Mac触发远程电脑运行Python函数的实现方案
通用方案:SSH远程执行(支持任意电脑)
这是最省心的方式,不需要搭建额外服务,主流操作系统(Mac、Windows、Linux)都兼容。
1. 先开启远程电脑的SSH服务
- Mac/Linux:
Mac在「系统设置→通用→共享」里勾选「远程登录」;Linux终端运行sudo systemctl start sshd,要开机自启就加sudo systemctl enable sshd。 - Windows:
打开「设置→应用→可选功能→添加功能」,搜索安装「OpenSSH服务器」,然后在服务列表里找到「OpenSSH SSH Server」,设为自动启动并运行。
2. 本地编写触发脚本
在你的Intel Mac上创建trigger_remote.py脚本,用subprocess调用SSH执行远程代码:
import subprocess # 替换成你的远程电脑信息 REMOTE_USER = "remote_username" REMOTE_IP = "192.168.x.x" # 远程电脑的局域网IP或公网IP # 要执行的Python函数代码 REMOTE_CODE = """ def command_1(): print("hi") command_1() """ def trigger(): # 构造SSH命令,远程调用Python执行代码 ssh_cmd = [ "ssh", f"{REMOTE_USER}@{REMOTE_IP}", f"python3 -c '{REMOTE_CODE}'" ] try: output = subprocess.run(ssh_cmd, check=True, capture_output=True, text=True) print("远程执行成功,输出:") print(output.stdout) except subprocess.CalledProcessError as err: print(f"执行失败,错误信息:{err.stderr}") if __name__ == "__main__": trigger()
3. 终端直接触发(不用脚本)
嫌写脚本麻烦的话,直接在本地终端敲这条命令:
ssh remote_username@192.168.x.x "python3 -c 'def command_1(): print(\"hi\"); command_1()'"
进阶:免密码登录
每次输密码太麻烦?设置SSH密钥登录:
- 本地终端运行
ssh-keygen -t ed25519,一路回车生成密钥对。 - 把公钥传到远程电脑:
ssh-copy-id remote_username@192.168.x.x,输一次密码后,下次触发就不用再输了。
针对Intel MacBook的专属简化
如果目标设备也是Intel Mac,除了SSH,还可以用scp把本地的Python脚本传过去再执行,但SSH直接执行代码的方式更直接,没必要多此一举。
内容的提问来源于stack exchange,提问作者Shadow
相关产品推荐
相关产品推荐

