You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Python版本及pyenv虚拟环境名称添加到Bash提示符中?

配置Bash PS1提示符显示Python版本和Pyenv环境

没问题,这就帮你把Python版本、Pyenv环境信息整合到Bash提示符里,实现你想要的[3.6.5@BooksHerokuDjango ~]$格式。

步骤1:完善并整合你的自定义函数

你写的__python_prompt函数逻辑没问题,我帮你做了个小优化——把python -V的错误输出重定向到标准输出,避免某些环境下版本信息打印到stderr导致cut取不到值。把这个函数放到.bashrc里Pyenv配置代码的下方即可:

function __python_prompt {
    version_number=$(python -V 2>&1 | cut -d " " -f2)
    version_name=$(pyenv version-name)
    echo "${version_number}@${version_name}"
}

步骤2:设置PS1变量

接下来修改PS1环境变量,把函数的输出嵌入到你想要的提示符格式中。在.bashrc末尾添加以下配置:

PS1='[$(__python_prompt) \W]\$ '

配置细节说明

  • $(__python_prompt):执行自定义函数,输出版本号@环境名的格式(比如3.6.5@BooksHerokuDjango)
  • \W:显示当前工作目录的短名称(Home目录会显示~,子目录只显示最后一级名称)
  • \$:普通用户显示$,root用户自动显示#,符合Bash的默认行为

让配置生效

保存.bashrc后,执行以下命令让配置立即生效:

source ~/.bashrc

或者直接新开一个终端窗口,就能看到符合要求的提示符了。

完整的.bashrc片段参考

把所有内容整合后,你的.bashrc相关部分应该是这样的:

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
    eval "$(pyenv init -)"
fi
eval "$(pyenv virtualenv-init -)"
export PYENV_VIRTUALENV_DISABLE_PROMPT='1'

# 自定义Python提示符函数
function __python_prompt {
    version_number=$(python -V 2>&1 | cut -d " " -f2)
    version_name=$(pyenv version-name)
    echo "${version_number}@${version_name}"
}

# 设置PS1提示符
PS1='[$(__python_prompt) \W]\$ '

内容的提问来源于stack exchange,提问作者user6820969

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:47:45