2012-09-22 64 views
0

我最近尝试使用bash脚本自动化安装Ubuntu VM(我是bash脚本新手)。如何通过bash安装脚本安装到virtualenv中?

问题是,我设置它的方式,它不起作用。特别是mkvirtualenv和workon命令在bash脚本中不起作用。如何在bash脚本中创建一个virtualenv并将其传递给变量,然后通过pip安装到virtualenv中?

#!/bin/bash 
VENV_NAME='name_of_virtualenv' 

#Setting up virtualenv 
mkdir --mode=770 /var/virtualenvs 
chown -R www-data:www-edit /var/virtualenvs 
chmod 771 /var/virtualenvs 
echo '# virtualenv and virtualwrapper' >> ~/.bashrc 
echo ' export VIRTUALENV_USE_DISTRIBUTE=1' >> ~/.bashrC# <-- Always use pip/distribute 
echo ' export WORKON_HOME=/var/virtualenvs' >> ~/.bashrc 
echo ' source /usr/local/bin/virtualenvwrapper.sh' >> ~/.bashrc 
echo ' export PIP_VIRTUALENV_BASE=$WORKON_HOME' >> ~/.bashrc 
echo ' export PIP_RESPECT_VIRTUALENV=true' >> ~/.bashrc 
source ~/.bashrc 

mkvirtualenv --distribute '{VENV_NAME}' 
workon {VENV_NAME} 

pip install psycopg2 
pip install --upgrade PIL 

回答

1

您呼叫之前缺少美元,也没有看到出口的VENV_NAME

export VIRTUALENV_USE_DISTRIBUTE=1 
echo {VIRTUALENV_USE_DISTRIBUTE} 
{VIRTUALENV_USE_DISTRIBUTE} 

echo ${VIRTUALENV_USE_DISTRIBUTE} 
1 

不确定为什么你需要出去出口的.bashrc,并从它的外观每次运行它的时候,它会添加相同出口的.bashrc将每次结束与一个越来越大的.bashrc文件

为什么不干脆让他们局部变量,如

VIRTUALENV_USE_DISTRIBUTE=1 

workon $VIRTUALENV_USE_DISTRIBUTE