Выполнить скрипт при переходе в его каталог? - PullRequest
1 голос
/ 04 апреля 2011

Я играю с virtualenv и pip, но я нахожу довольно ограниченным, чтобы каждый раз, когда я вхожу в каталог virtualenv, приходилось «брать / активировать источник». Поэтому я хотел бы автоматизировать это. Любые идеи о способе выполнения сценария, когда мы перейдем к его каталогу, или функции оболочки, обеспечивающие такое поведение?

1 Ответ

1 голос
/ 06 июня 2011

Может быть, вы ищете что-то подобное в вашей .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 для некоторых других интересных вещей.

...