[英]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.