移动到它的目录时执行脚本?

时间:2011-04-04 15:41:23

标签: bash shell virtualenv zsh

我正在玩virtualenv和pip,但我发现每次进入virtualenv目录时都必须“使用bin / activate”。 所以我想自动化它。一旦我们改变它的目录,或者一个shell功能启用这种行为,任何一种执行脚本的方法的想法?

1 个答案:

答案 0 :(得分:1)

也许你在.bash_profile ::

中寻找类似的东西
has_virtualenv() {
    if [ -e .venv ]; then
        workon `cat .venv`
    fi
}
venv_cd () {
    cd "$@" && has_virtualenv
}
alias cd="venv_cd"

它用一个脚本替换默认cd命令,该脚本1)对新目录中的cd文件进行实际.venv,2)检查,如果找到它,则假定file包含虚拟环境名称并执行workon `cat .venv`

workon命令是普通source bin/activate的替代;它由virtualenvwrapper提供,并有一些像postactivate钩子这样的细节。有关详细信息,请参阅项目页面。

上面的那段代码我通过Justin Lilly的post找到了。另请参阅virtualenvwrapper文档中的tips以获取其他一些很酷的东西。