virtualenv 的 deactivate 在哪里定义?

virtualenv 的 deactivate 在哪里定义?

Virtualenv 为命令定义了一个别名,deactivate如 所示yourvirtualenv/bin/activate.csh。我很好奇的是它deactivate驻留在何处,因为当我发出alias命令时deactivate,它并没有出现在活动别名列表中。

答案1

假设你正在运行bash而不是csh,你想要查看的脚本是yourvirtualenv/bin/activate(不是yourvirtualenv/bin/activate.csh),它定义了一个功能被称为deactivate,不是一个别名。你可以用以下命令查看type

$ type deactivate
deactivate is a function
deactivate () 
{ 
    typeset env_postdeactivate_hook;
    typeset old_env;
    virtualenvwrapper_run_hook "pre_deactivate";
    env_postdeactivate_hook="$VIRTUAL_ENV/$VIRTUALENVWRAPPER_ENV_BIN_DIR/postdeactivate";
    old_env=$(basename "$VIRTUAL_ENV");
    virtualenv_deactivate $1;
    virtualenvwrapper_run_hook "post_deactivate" "$old_env";
    if [ ! "$1" = "nondestructive" ]; then
        unset -f virtualenv_deactivate > /dev/null 2>&1;
        unset -f deactivate > /dev/null 2>&1;
    fi
}

相关内容