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 回答