在 PS1 中显示 pipenv virtualenv

Max*_*Max 3 python bash virtualenv ps1 pipenv

Pipenv是一个相对较新的打包工具,包含“Pipfile、Pip 和 Virtualenv”。我进行了更改以简化我的 PS1,.bashrc但现在发现我需要 PS1 来告诉我何时使用我的 virtualenv。

当前 PS1:

PS1='\w $ '
Run Code Online (Sandbox Code Playgroud)

从下面,你可以看到我的提示脚本没有告诉我我是否在使用虚拟环境:

~ $ cd workspace/myproject/
~/workspace/myproject $ pipenv shell
Launching subshell in virtual environment. Type 'exit' or 'Ctrl+D' to return.
~/workspace/marcus_project $ 
Run Code Online (Sandbox Code Playgroud)

我经常搞砸我的PS1,并希望有一个简单的修复,让 virtualenv 中的提示像这样显示:(my-env) ~ $.

cxw*_*cxw 5

根据docs,创建一个.env在您的项目中调用的文件。给它内容

export PS1='(myenv) \w $ '
Run Code Online (Sandbox Code Playgroud)

或任何你想要的。 pipenv shell将加载它。

(注意:我自己没试过pipenv。今天我知道它存在!:))

拿2

如果您的.bashrcor .profile(或其他启动文件)设置为PS1,您可以破解它。

  • 放入export PIPENV_PS1='(myenv) \w $ '你的.env. (这个名字PIPENV_PS1没什么特别的——我只是选择了一些我认为有意义的东西。)
  • 在你的末尾.bashrc,添加:

    if [[ $PIPENV_PS1 ]]; then
        export PS1="$PIPENV_PS1"
    fi
    
    Run Code Online (Sandbox Code Playgroud)

这样,您.bashrc将复制您在.env.