2012-09-22 76 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