Где определяется деактивация virtualenv?

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
}
Другие вопросы по тегам