Bash
在環境中遠端執行本地 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
做這樣的事情的最好方法是什麼?
如果您只想執行腳本並退出,則無需啟動虛擬環境。啟動虛擬環境只是通過調整
PATH
1替換 python 執行檔的便捷方法。所以,命令$ source path/to/myenv/bin/activate $ python myscript.py $ deactivate
可以有效地替換為
$ path/to/myenv/bin/python myscript.py
因此,當通過 執行腳本時
ssh
,只需選擇myenv
s python 執行檔的正確路徑即可:$ ssh user@host "path/to/myenv/bin/python" < ./myscript.py
1除此之外,環境變數
VIRTUAL_ENV
被設置並且環境名稱被添加到PS1
.