【发布时间】:2013-02-20 18:13:47
【问题描述】:
我在 Mac OSX (10.8.2) 上运行 virtualenv,虽然它可以工作(我可以设置 venvs,在它们之间切换,激活和停用),但一件事不起作用(而且很烦人)是终端提示开关。
我的基本提示是[\u] \w \n\[\033[0;31m\]$\[\e[0m\],呈现为:
[hugo] /current/directory/path/
$
即它有一个换行符。
如果我激活一个 virtualenv,我希望:
(myproject)[hugo] /current/directory/path/
$
但实际上我根本没有得到任何改变。
我打开了/bin/activate 脚本,查看了代码:
if [ -z "$VIRTUAL_ENV_DISABLE_PROMPT" ] ; then
_OLD_VIRTUAL_PS1="$PS1"
if [ "x" != x ] ; then
PS1="$PS1"
else
if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then
# special case for Aspen magic directories
# see http://www.zetadev.com/software/aspen/
PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1"
else
PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1"
fi
fi
export PS1
fi
如果我在最后插入回声,我可以看到 PS1 变量设置为 (myproject)[\u] \w \n\[\033[0;31m\]$\[\e[0m\],但由于某种原因没有粘贴,并且没有导出正确的 PS1。
这与我的自定义提示有关还是权限问题?它显然 不是 virtualenv 的东西,因为我知道它可以工作(实际上它可以在我的流浪虚拟机上工作,只是不能在我的 OSX 主机上工作)。
?
[更新 1]
我的错误 - 看起来我有一个 git-aware 提示,它根据目录/repo 状态覆盖提示。这就是杀死 venv 提示符的原因。现在我只需要一个两者兼而有之 - 所以,后续问题是:有没有人有一个颜色、git-aware、OSX 提示符,可以很好地与 virtualenv 搭配使用。
【问题讨论】:
-
我遇到了同样的问题,在这篇文章中找到了解决方案:cewing.github.io/training.codefellows/lectures/day01/shell.html
标签: bash virtualenv