環境でリモートでローカルPythonスクリプトを実行する

環境でリモートでローカルPythonスクリプトを実行する

ローカルPythonスクリプトをリモートで実行したいのですが、まずリモートシステムで正しい環境を有効にしてください。たとえば、ローカルで実行している場合は、次のようにします。

source activate myenv
python myscript.py

SSHを使用すると、次のことができるようです。

ssh user@host "source activate myenv && python" < ./myscript.py

しかし、これはうまくいかないようです。エラーメッセージが生成されます。

bash: activate: No such file or directory

このようなタスクを実行する最良の方法は何ですか?

ベストアンサー1

単にスクリプトを実行して終了したい場合は、仮想環境を有効にする必要はありません。仮想環境を有効にすることは、PATH1を調整してPython実行可能ファイルを置き換える便利な方法です。だからコマンドは

$ source path/to/myenv/bin/activate
$ python myscript.py
$ deactivate

で効果的に置き換えることができます。

$ path/to/myenv/bin/python myscript.py

したがって、次のようにスクリプトを実行するときは、sshPython実行可能ファイルの正しいパスを選択してくださいmyenv

$ ssh user@host "path/to/myenv/bin/python" < ./myscript.py

1その他にVIRTUAL_ENV環境変数を設定してくださいPS1

おすすめ記事