Где определяется деактивация 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
}