我有在Mac OSX上運行的virtualenv(10.8.2),雖然它可以工作(我可以設置venvs,在它們之間切換,激活和解除關聯),但是一件不起作用的功能是終端提示開關。爲什麼virtualenv沒有設置我的終端提示符?
我的基本提示是[\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
var設置(myproject)[\u] \w \n\[\033[0;31m\]$\[\e[0m\]
,但出於某種原因,沒有粘附,並且正確的PS1沒有被導出。
這是我的自定義提示或權限問題?這很明顯是而不是這是一個virtualenv的東西,因爲我知道它的工作原理(事實上它適用於我的流浪VM,而不是我的OSX主機)。
?
[更新1]
我的錯誤 - 它看起來像我有一個混帳感知提示,這是覆蓋取決於目錄/回購的狀態提示。這是什麼殺死venv提示符。現在我只需要一個可以同時執行的操作 - 因此,後續問題是:是否有人有顏色,git-aware,OSX提示符,這些提示符與virtualenv很好地匹配。
燁分開 - 感謝 - 我的工作了最終 – 2013-02-22 08:57:55
Likewise-不得不擺弄。添加在.bashrc末尾不會直接工作,而是直接在.bashrc中的其他提示設置下複製粘貼此腳本(與virtualenv文件夾中的「bin/activate」中的內容相同) ,但在PS1出口之前,它的工作。 – Nate 2014-01-21 17:02:34
我認爲需要在最後一個林中添加一個分號e $ PROMPT_COMMAND和add_venv_info之間,以使其工作。 – jgosmann 2017-07-12 18:48:10