如何使用Paramiko运行Ipython

如何使用Paramiko运行Ipython,python,ipython,paramiko,Python,Ipython,Paramiko,我编写了一个脚本,需要使用Paramiko从远程服务器访问变量 是否可以像在该服务器上运行ipython一样访问远程脚本对象 本地。。。 e、 g.来自foo.py list = [1,2,3] ipython -i foo.py In[1]: list Out[1] [1,2,3] 我如何使用Paramiko访问相同的东西? 遥远的 ssh = ssh.exec_command('ipython -i /some path/foo.py') 我建议使用。它允许轻松访问远程对象 但是,如

我编写了一个脚本,需要使用Paramiko从远程服务器访问变量

是否可以像在该服务器上运行ipython一样访问远程脚本对象

本地。。。 e、 g.来自foo.py

list = [1,2,3]

ipython -i foo.py

In[1]: list
Out[1] [1,2,3]
我如何使用Paramiko访问相同的东西? 遥远的

ssh = ssh.exec_command('ipython -i /some path/foo.py')
我建议使用。它允许轻松访问远程对象

但是,如果必须使用Paramiko,可以使用以下示例:

sin, sout, serr = ssh.exec_command("python")
sin.write('''x=["a1","b2","c3"]
print("-".join(x))
exit()
''')
sin.flush()
sin.channel.shutdown_write()
line = sout.readline()
print("line:{}".format(line))
myarr = line.split("-")
for e, i in enumerate(myarr):
    print("item {}:{}".format(e,i))
其输出将为:

line:a1-b2-c3

item 0:a1
item 1:b2
item 2:c3

这意味着您的远程脚本必须打印变量(到stdout),以便您读取它,并且您需要操作输出。别忘了清理(关闭管道和连接)。

我尝试过,我需要访问“列表”的内容并使用它们。目前我只能访问标准输出,但这不是我想要的全部。你想用键盘控制远程IPython吗,或者以编程方式?事实上,我有一个Django应用程序在本地服务器上运行。my views.py中的一个功能需要数据,而这些数据只能通过运行远程脚本来提供,我希望访问这些变量的值,以便更新我的数据库。编程方式谢谢,我最终打印变量并读取到stdout。