Bash

在環境中遠端執行本地 python 腳本

  • August 3, 2018

我想遠端執行本地 python 腳本,但首先在遠端機器中啟動適當的環境。例如,如果在本地執行,我會這樣做:

source activate myenv
python myscript.py

我想我可以像這樣使用 ssh 來做到這一點:

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

但是,這似乎不起作用。它產生錯誤消息:

bash: activate: No such file or directory

做這樣的事情的最好方法是什麼?

如果您只想執行腳本並退出,則無需啟動虛擬環境。啟動虛擬環境只是通過調整PATH1替換 python 執行檔的便捷方法。所以,命令

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

可以有效地替換為

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

因此,當通過 執行腳本時ssh,只需選擇myenvs python 執行檔的正確路徑即可:

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

1除此之外,環境變數VIRTUAL_ENV被設置並且環境名稱被添加到PS1.

引用自:https://unix.stackexchange.com/questions/460172