gpt4 book ai didi

python - 通过 SSH 传输 pickle 字节

转载 作者:太空宇宙 更新时间:2023-11-04 03:38:31 26 4
gpt4 key购买 nike

我正在尝试从我计算机上的另一个 python 脚本在服务器上远程启动 python 脚本。目标是通过 SSH 传输一些类中的数据(例如,数据是我要传输的字符串。当然,对字符串使用 pickle 没有任何意义,这对于示例来说是正确的)。

我想要这样的东西:

脚本(在计算机上):maCo 是一个 SSH 连接。

import pickle
data = 'é&'
data_bytes = pickle.dumps(data)
maCo.sendCmd(['python3', 'serverScript.py', '-ma', data_bytes])

脚本(在服务器上)

import argparse, pickle
parser = argparse.ArgumentParser()
parser.add_argument("-ma", "--myarg", help="Arg", type=bytes)
args = parser.parse_args()
data = pickle.loads(args.myarg)

我尝试将字节转换为字符串,但没有成功。感谢您的帮助

最佳答案

我不确定你想从你的问题中做什么,但我可以猜到......

如果您正在寻找可以帮助您建立 ssh 连接然后传送 python 对象的软件包,pathos 能够建立 ssh 隧道或直接 ssh 连接——那么你可以通过它管道传输你想要的任何类型的通信(通常是套接字到套接字通信,如 zmq 提供的,或其他一些 rpc 连接——我经常使用 并行python)。线路上的所有通信都可以被 pickle,但实际上它们必须是序列化的对象。 pathos 试图为您提供一个功能接口(interface)来使用 ssh 和并行 pipemap 结构。

此外,如果您希望传输类对象或类实例,并且您正在使用 pickle 序列化您的对象,则需要在已经存在的模块中定义该类在远程计算机上并且在远程 PYTHONPATH 上。如果您使用 dill 序列化您的类对象或实例,则不需要提前在远程系统上使用该类。这是因为 pickle 通过引用序列化类,而 dill 可以存储整个类对象或实例(通过引用序列化)。

在此处获取pathosdill:https://github.com/uqfoundation

我相信 IPython 最近也能做一些这样的事情,但你仍然需要 dill 最有可能发送一个序列化的类实例(如上所述).

关于python - 通过 SSH 传输 pickle 字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27750925/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com