移动到其目录时执行脚本吗?

发布于 2024-10-30 05:59:28 字数 145 浏览 5 评论 0原文

我正在使用 virtualenv 和 pip,但我发现每次进入 virtualenv 目录时都必须“source bin/activate”,这是相当有限制的。 所以我想自动化它。一旦我们更改了脚本的目录,或者 shell 具有启用此行为的功能,有什么想法可以执行该脚本吗?

I'm playing around with virtualenv and pip, but I find it quite restrictive to have to "source bin/activate" each time I come into a virtualenv dir.
So I'd like to automate it. Any ideas of a way to execute a script once we change to it's dir, or a shell features enabling this behavior?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

剧终人散尽 2024-11-06 05:59:29

也许您正在 .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 文档中的提示,了解其他一些很酷的东西。

Maybe you're looking for something like this in your .bash_profile::

has_virtualenv() {
    if [ -e .venv ]; then
        workon `cat .venv`
    fi
}
venv_cd () {
    cd "$@" && has_virtualenv
}
alias cd="venv_cd"

It replaces default cd command with a script which 1) does the actual cd, 2) checks for .venv file inside new directory, 3) if it's found, assumes that the file contains virtual environment name and executes workon `cat .venv`.

workon command is a replacement for plain source bin/activate; it's provided by virtualenvwrapper and has some niceties like postactivate hook. See project page for more details.

That piece of code above I found via post by Justin Lilly. See also tips in virtualenvwrapper's docs for some other cool stuff.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文