我有两台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脚本尝试过...。但是它不起作用。
答案 0 :(得分:0)
一步来做:
ssh -i mypem.pem ubuntu@12.34.56.789 "
source .bashrc && python /home/ubuntu/build_records.py"
这是必要的,因为source .bashrc
的所有影响都消失了
当shell和ssh客户端完成时。