1

最近、bash スクリプトを使用して Ubuntu VM のセットアップを自動化しようとしました (bash スクリプトは初めてです)。

問題は、私が設定した方法では機能しないことです。特に 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
4

1 に答える 1

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
于 2012-09-22T12:06:36.480 に答える