进入autoenv-ed目录时,如何只调用一次workon?

时间:2014-04-13 04:38:24

标签: python virtualenv virtualenvwrapper

Autoenv超级棒!但是,我的终端速度有点慢,因为autoenv调用workon每次我从一个目录cd到autoenv根目录下的另一个目录。如何自定义我的.env文件,以便仅在我最初进入目录时调用workon?

2 个答案:

答案 0 :(得分:2)

我在 .env 文件中有这个:

type deactivate &>/dev/null || source venv/bin/activate

检查环境是否已激活。如果没有,请激活环境,否则什么也不做。

答案 1 :(得分:1)

如果您有多个项目,每个项目都有自己的virtualenv,并且您希望在cd进入项目文件夹时自动切换virtualenvs(当然,确保仅在必要时调用workon )那么你在.env文件中需要更多的逻辑:

venv=venv
currentvenv=""

if [[ $VIRTUAL_ENV != "" ]]
then
  # Strip out the path and just leave the env name
  currentvenv="${VIRTUAL_ENV##*/}"
fi

if [[ "$currentvenv" != "$venv" ]]
then
  echo "Switching to environment: $venv"
  workon $venv
#else
#  echo "Already on environment $venv"
fi

请参阅https://stackoverflow.com/a/27987379/2915101