WindowsマシンでPythonスクリプトを実行して、リモートLinuxマシンで別のPythonスクリプトを呼び出しています。以下のように、sshでsubprocess.callを使用してこれを実行しています
subprocess.call('ssh -i <identify file> username@hostname python <script_on_linux_machine>')
。これは正常に機能します。
ただし、以下のようにいくつかの環境変数を設定したい場合は、
subprocess.call('ssh -i <identify file> username@hostname python <script_on_linux_machine>', env={key1:value1})
失敗します。次のエラーが発生します。
ssh_connect: getnameinfo failed
ssh: connect to host <hostname> port 22: Operation not permitted
255
sshコマンドをリストに分割して渡すことを試みました。助けにはならなかった。他の「ローカル」(Windows)コマンドを実行subprocess.call()
して、環境を設定しようとしました。正常に動作します。ls
リモートLinuxマシンで他のコマンド(など)を実行しようとしました。繰り返しsubprocess.call()
ますが、環境を設定しようとしない限り、正常に動作します。
私は何が間違っているのですか?リモートマシンでPythonスクリプトの環境を設定できますか?どんな助けでもありがたいです。