pure icon indicating copy to clipboard operation
pure copied to clipboard

Double venv in prompt

Open sgript opened this issue 5 months ago • 3 comments

General information

System report (output of prompt_pure_system_report):

- Zsh: zsh 5.9 (x86_64-apple-darwin23.0) (/bin/zsh)
- Operating system: macOS 14.3.1 (23D60)
- Terminal program: vscode (1.86.1)
- Tmux: no
- Git: git version 2.39.3 (Apple Git-145)
- Pure state:
    - username: `''`
    - prompt: `❯`
    - version: `1.22.0`
- zsh-async version: `1.8.6`
- PROMPT: `typeset -g PROMPT=$'%F{${prompt_pure_colors[path]}}%~%f %F{#BAABFD}${prompt_pure_vcs_info[branch]}%F{218}${prompt_pure_git_dirty}%f %F{$prompt_pure_colors[git:arrow]}${prompt_pure_git_arrows}%f %F{$prompt_pure_colors[execution_time]}${prompt_pure_cmd_exec_time}%f
%}(venv) %(12V.%F{$prompt_pure_colors[virtualenv]}%12v%f .)%(?.%F{$prompt_pure_colors[prompt:success]}.%F{$prompt_pure_colors[prompt:error]})${prompt_pure_state[prompt]}%f '`
- Colors: `typeset -g -A prompt_pure_colors=( [execution_time]=yellow [git:action]=yellow [git:arrow]=cyan [git:branch]='#BAABFD' [git:branch:cached]=red [git:dirty]=218 [git:stash]=cyan [host]=242 [path]='#80DAFF' [prompt:continuation]=242 [prompt:error]='#BAABFD' [prompt:success]='#BAABFD' [suspended_jobs]=red [user]=242 [user:root]=default [virtualenv]=242 )`
- TERM: `export TERM=xterm-256color`
- Virtualenv: `export VIRTUAL_ENV_DISABLE_PROMPT=12`
- Conda: `export CONDA_CHANGEPS1=no`
- Detected frameworks: Oh My Zsh
    - Oh My Zsh:
        - Plugins: git, zsh-autosuggestions

Other information

I have:

  • [X] Tested with another terminal program and can reproduce the issue:
  • [X] Followed the integration instructions for my framework

Problem description

I've got double venv showing in my prompt for Python. Previously did not have "(venv)", just "venv ❯" showing

(venv) venv ❯ pyenv --version          
pyenv 2.3.35

It seems when I start my shell I get the (venv) pre-appended (becoming (venv) venv ❯), but if I run zsh / source my zsh shell, it gets rid of it and results in just venv ❯ as expected. I expect a package update has caused the (venv) prepending now. So my question was, is it possible to disable the extra venv ❯ from appearing? Ideally however, I preferred just having venv ❯ appear, rather than the uncoloured (venv).

Reproduction steps

  1. Open terminal
  2. See (venv) prepended in front of Pure's venv ❯
  3. Running zsh removes (venv)

My .zshrc:

export ZSH="$HOME/.oh-my-zsh"

export ZSH_THEME=""

plugins=(
    git
    zsh-autosuggestions
)

source $ZSH/oh-my-zsh.sh

# -- PURE shell --
fpath+=("$(brew --prefix)/share/zsh/site-functions")
autoload -U promptinit; promptinit

zstyle :prompt:pure:path color '#80DAFF'
zstyle :prompt:pure:git:branch color '#BAABFD'
zstyle :prompt:pure:prompt:success color '#BAABFD'
zstyle :prompt:pure:prompt:error color '#BAABFD'

prompt pure

# -- Homebrew --
eval "$(/opt/homebrew/bin/brew shellenv)"

# -- Git custom commands --
export PATH="$HOME/git-custom-commands:$PATH"

# -- NVM ---
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh"  # This loads nvm
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm"

# -- PYENV --
eval "$(pyenv init -)"

# -- POETRY --
export PATH="/Users/shazaibahmad/.local/bin:$PATH"

# -- DOOM EMACS --
export PATH=$HOME/.emacs.d/bin:$PATH # location of doom
# export PATH="/opt/homebrew/opt/grep/bin/ggrep:$PATH"
export PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"
PATH="$(brew --prefix grep)/libexec/gnubin:$PATH"

sgript avatar Feb 09 '24 11:02 sgript

Do you use venv via pyenv? Could you tell us the version of both pyenv and Oh My Zsh that you’re using? I’m guessing one or the other could be causing this.

mafredri avatar Feb 09 '24 12:02 mafredri

Having the same issue.

OS: Ubuntu 22.04.4 LTS x86_64
Kernel: 5.17.0-1020-oem
Shell: zsh 5.8.1
OMZ: master (12cd3b3)
pyenv: pyenv 2.3.25-1-ge1b7e1b5
vscode: 1.87.0
# .zshrc
ZSH_THEME="" 
plugins=( 
    git
    zsh-autosuggestions
    zsh-syntax-highlighting
    # other plugins...
)

source $ZSH/oh-my-zsh.sh

# NOTE: oh-my-zsh overrides the prompt so Pure must be activated after source $ZSH/oh-my-zsh.sh
# Add path of pure repo to /home/.zsh folder
fpath+=($HOME/.zsh/pure)
autoload -U promptinit; promptinit
prompt pure

# pyenv
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

# Node Version Manager (NVM)
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

To reproduce, start a new terminal and this is the visual:

~/path main
(venv) venv ❯ 

Two observations:

  • If I do deactivate followed by . venv/bin/activate, then (venv) disappears.
  • If I do zsh, (venv) also disappears.

rafaelmarino avatar Mar 03 '24 15:03 rafaelmarino