添加virtualenv名称以在使用pew

时间:2017-01-30 03:20:01

标签: bash virtualenv

我正在使用pew来管理macOS El Capitan上的虚拟环境。一旦激活一个,我想得到一些关于virtualenv的信息。根据{{​​3}},此行为应该是开箱即用的,但如果不是,则可以通过将source $(pew shell_config)添加到.bashrc / .bash_profile来配置。我添加了这个,但它没有任何影响。

要创建一个最小示例,我已删除.bash_profile以外的所有内容,source $(pew shell_config)除外。当我运行pew workon命令时,我的提示确实发生了变化,但它只是更改为bash-3.2$,没有任何虚拟环境的指示。

如何更新我的.bash_profile,以便pew workon能够在提示中显示虚拟环境的名称?

据我了解,切换到virtualenv时设置的提示是在shell_config/init.bash中设置的。就我而言,这个文件看起来像这样:

source "$( dirname "${BASH_SOURCE[0]}" )"/complete.bash

PS1="\[\033[01;34m\]\$(basename '$VIRTUAL_ENV')\[\e[0m\]$PS1"

看起来这应该给我我想要的行为,但它似乎没有用,我不知道为什么。

3 个答案:

答案 0 :(得分:1)

在〜目录中创建一个.bashrc,然后粘贴“ source $(pew shell_config)”

我也遇到了这个问题,发现pew在寻找.bashrc,而不是.bash_profile。

答案 1 :(得分:0)

如果我理解正确,问题在于引用:

PS1="\[\033[01;34m\]\$(basename '$VIRTUAL_ENV')\[\e[0m\]$PS1"
第一次调用时,

将展开$VIRTUAL_ENV ,并定义一个对$VIRTUAL_ENV的后续更改无响应的提示。试试这个:

PS1='\[\e[01;34m\]$(basename "$VIRTUAL_ENV")\[\e[0m\]'"$PS1"

答案 2 :(得分:0)

在Ubuntu 20上,将此粘贴到.bashrc的末尾

else if($hour >= 18) ...