簡體   English   中英

如何使用Paramiko運行Ipython

[英]How to run Ipython using Paramiko

我已經編寫了一個腳本,我需要使用Paramiko從遠程服務器訪問變量。

是否可以像在該服務器上運行ipython一樣訪問遠程腳本對象?

本地...例如從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')

我建議使用RPyC 它允許輕松訪問遠程對象。

但是,如果必須使用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)才能讀取它,並且您需要操縱輸出。 不要忘記清理(關閉管道和連接)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM