在没有 scp 的远程机器上执行本地 python 脚本,包括本地功能

Execute local python script including local functions on a remote machine without scp

我有一个 python 脚本,我目前 运行 在远程机器上

ssh name@server python <~/test/main.py

我想包含本地 'test' 目录中的函数,所以我有类似的东西

#test/function.py
def my_function():
    return 5

#test/main.py
from function import my_function
print my_function()

如果我像往常一样执行我的脚本,我会收到错误

ImportError: 没有名为函数的模块

如何将本地函数导入远程机器? 我没有权限在远程机器上保存任何东西,所以我不能用 scp 复制我的函数。

我试过包含路径,但运气不好。

import sys
sys.path.insert(0, '<~/test')

使用 RPC,您可以做到这一点,例如 Nameko 是一个可以帮助您完成这项工作的框架。

如果您没有保存任何内容的权限,则无法在远程计算机上更改任何内容。

因此,如果远程机器上没有任何东西可以获取您的代码或函数并制作它们运行,那么您就倒霉了。