ローカル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
単にスクリプトを実行して終了したい場合は、仮想環境を有効にする必要はありません。仮想環境を有効にすることは、PATH
1を調整してPython実行可能ファイルを置き換える便利な方法です。だからコマンドは
$ source path/to/myenv/bin/activate
$ python myscript.py
$ deactivate
で効果的に置き換えることができます。
$ path/to/myenv/bin/python myscript.py
したがって、次のようにスクリプトを実行するときは、ssh
Python実行可能ファイルの正しいパスを選択してくださいmyenv
。
$ ssh user@host "path/to/myenv/bin/python" < ./myscript.py
1その他にVIRTUAL_ENV
環境変数を設定してくださいPS1
。