我正在使用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"
看起来这应该给我我想要的行为,但它似乎没有用,我不知道为什么。
答案 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) ...