【问题标题】:Execute a script when moving to it's dir?移动到它的目录时执行脚本?
【发布时间】:2011-04-04 15:41:22
【问题描述】:

我正在使用 virtualenv 和 pip,但我发现每次进入 virtualenv 目录时都必须“源 bin/activate”非常有限制。 所以我想自动化它。一旦我们更改为它的目录或启用此行为的外壳功能,是否有任何关于执行脚本的方法的想法?

【问题讨论】:

  • 你使用的是哪个shell,bash?如果是这样,请用 bash 标记这个问题,您将在 30 秒内得到答案。它也可能有助于指示操作系统、Linux/Unix/SomethingElse?
  • 我的错,我实际上在 Linux 和 Osx 上使用 zsh。
  • 你到底想做什么?我从不使用源 bin/activate,但如果我想执行某些操作,总是使用 virtualenv 中可执行文件的完整路径...

标签: bash shell virtualenv zsh


【解决方案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,2) 检查新目录中的 .venv 文件,3) 如果找到,则假定该文件包含虚拟环境名称和执行workon `cat .venv`

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2011-12-04
    • 1970-01-01
    • 2022-08-09
    • 2020-08-08
    • 1970-01-01
    • 2011-03-23
    相关资源
    最近更新 更多