在远程计算机中激活VirtualEnv并更新python路径

时间:2018-12-20 09:43:38

标签: bash virtualenv

我有两台ubuntu机器,一台在本地,一台在云上。云上的一个具有virtualenv,所有程序都设计为在virtualenv内运行。我具有ssh访问权限和对云计算机的root访问权限。我正在尝试从本地计算机执行bash脚本/ python脚本。但是,我被困了2天只是为了激活virtualenv,没有运气。以下是我最近的试用版:

通过此post,我已经创建了.sh文件。从云计算机执行时,此文件有效,但是从本地计算机执行时,此文件无效。我尝试了各种排列组合,但无法正常工作。

我的bashrc有以下几行:

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

最新的配置在我的bash脚本中:

if (tty -s); then
    source /home/ubuntu/.virtualenvs/venv/bin/activate
    export PYTHONPATH=$PYTHONPATH:/home/ubuntu/models/research:/home/ubuntu/models/research/slim
fi

我的本​​地脚本如下:

ssh -i mypem.pem ubuntu@12.34.56.789 "source .bashrc"
ssh -i mypem.pem ubuntu@12.34.56.789 "python /home/ubuntu/build_records.py"

我尝试了无数种上述方法的组合,但无法使其正常工作。即使机器使用venv作为默认环境引导我也可以,我通过bash脚本尝试过...。但是它不起作用。

1 个答案:

答案 0 :(得分:0)

一步来做:

ssh -i mypem.pem ubuntu@12.34.56.789 "
    source .bashrc && python /home/ubuntu/build_records.py"

这是必要的,因为source .bashrc的所有影响都消失了 当shell和ssh客户端完成时。