0

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')
4

1 に答える 1

0

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 に) 出力する必要があり、出力を操作する必要があることを意味します。クリーンアップを忘れないでください (パイプと接続を閉じます)。

于 2013-10-17T20:00:11.090 に答える