Onde é que o virtualenv's desativa definido?

0

Virtualenv define um alias para o comando deactivate como visto em yourvirtualenv/bin/activate.csh . O que eu estou curioso é onde deactivate reside, porque quando eu emito um alias command deactivate não aparece na lista de aliases ativos.

    
por Parham 23.10.2013 / 11:09

1 resposta

1

Supondo que você esteja realmente executando bash em vez de csh , o script que você deseja analisar é yourvirtualenv/bin/activate (não yourvirtualenv/bin/activate.csh ), que define uma função chamada deactivate , não é um alias . Você pode ver isso com o comando 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
}
    
por 23.10.2013 / 17:37