Может быть, вы ищете что-то подобное в вашей .bash_profile
::
has_virtualenv() {
if [ -e .venv ]; then
workon `cat .venv`
fi
}
venv_cd () {
cd "$@" && has_virtualenv
}
alias cd="venv_cd"
Она заменяет команду по умолчанию cd
на скрипт, который 1) выполняет фактическую cd
, 2)проверяет файл .venv
внутри нового каталога, 3) если он найден, предполагает, что файл содержит имя виртуальной среды, и выполняет команду workon `cat .venv`
.
workon
, заменяющую обычный source bin/activate
;он предоставляется virtualenvwrapper
и имеет некоторые тонкости, такие как postactivate
hook.См. Страницу проекта для получения более подробной информации.
Этот фрагмент кода выше я нашел через post Джастина Лилли.См. Также tips в документах virtualenvwrapper для некоторых других интересных вещей.