如何在进入autoenv目录时仅调用一次workon?
Autoenv 真是太棒了!不过,我发现我的终端变得有点慢,因为每次我在 autoenv 根目录下从一个文件夹切换到另一个文件夹时,autoenv 都会调用 workon。请问我该如何调整我的 .env 文件,让 workon 只在我第一次进入这个文件夹时被调用呢?
2 个回答
1
如果你有多个项目,每个项目都有自己的虚拟环境(virtualenv),而你希望在进入项目文件夹时自动切换到相应的虚拟环境(当然,确保只有在必要的时候才调用 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
可以参考 这个链接
2
我在我的 .env 文件里有这些内容:
type deactivate &>/dev/null || source venv/bin/activate
检查一下环境是否已经激活。如果没有激活,就激活这个环境;如果已经激活了,就不做任何事情。