title: pyenv no longer sets paths correctly when activating virtual environments
body: <p>I've been using pyenv for almost two years with no problems on my system running RHEL 8.3 (Linux kernel 4.18) with Gnome 3.32.2 in X11 mode. I primarily use the fish shell but also occasionally bash, both worked fine with pyenv until now. However, after running <code>pyenv update</code> about 24 hours ago, using the <code>pyenv activate</code> command to activate one of my created virtual environments no longer sets the path to use what I've installed in that virtual environment.</p>
  <p>When I start a terminal session, I see a new message saying:</p>
  <pre class="lang-sh prettyprint-override"><code>WARNING: `pyenv init -` no longer sets PATH.
  Run `pyenv init` to see the necessary changes to make to your configuration.
  </code></pre>
  <p>So I ran <code>pyenv init</code> which told me:</p>
  <pre><code># Add pyenv executable to PATH by adding
  # the following to ~/.profile:
  
  set -Ux PYENV_ROOT $HOME/.pyenv
  set -Ux fish_user_paths $PYENV_ROOT/bin $fish_user_paths
  
  # Load pyenv automatically by appending
  # the following to ~/.config/fish/config.fish:
  
  pyenv init - | source
  
  # and the following to ~/.profile:
  
  pyenv init --path | source
  
  # If your ~/.profile sources ~/.config/fish/config.fish,
  # the lines should be inserted before the part
  # that does that.
  
  # Make sure to restart your entire logon session
  # for changes to ~/.profile to take effect.
  </code></pre>
  <p>I'm pretty sure I already have all of the above. Here's my <code>~/.profile</code>:</p>
  <pre><code>set -Ux PYENV_ROOT $HOME/.pyenv
  set -Ux fish_user_paths $PYENV_ROOT/bin $fish_user_paths
  pyenv init --path | source
  </code></pre>
  <p>Here's my <code>~/.config/fish/config.fish</code>:</p>
  <pre><code># Set default editor
  set -gx EDITOR nano
  
  # Set Junest path
  set PATH /home/[username]/.local/share/junest/bin $PATH
  
  # Set pyenv root directory
  set PYENV_ROOT $HOME/.pyenv
  
  # Add pyenv and local bin to $PATH
  set PATH $PYENV_ROOT/bin /home/[username]/.local/bin $PATH
  
  # Add pyenv init to shell to enable shims and autocompletion 
  # Note the command `pyenv init` will tell you to add this line for fish
  status --is-interactive; and source (pyenv init -|psub)
  
  pyenv init - | source
  </code></pre>
  <p>My <code>~/.bashrc</code>:</p>
  <pre><code># Source global definitions
  if [ -f /etc/bashrc ]; then
          . /etc/bashrc
  fi
  
  # User specific environment
  PATH=&quot;$HOME/.local/bin:$HOME/bin:$PATH&quot;
  export PATH
  
  # Uncomment the following line if you don't like systemctl's auto-paging featur$
  # export SYSTEMD_PAGER=
  
  # User specific aliases and functions
  
  # Load pyenv
  export PATH=&quot;$HOME/.pyenv/bin:$PATH&quot;
  eval &quot;$(pyenv init -)&quot;
  eval &quot;$(pyenv virtualenv-init -)&quot;
  </code></pre>
  <p>A few more observations:</p>
  <ol>
  <li>I discovered that even though I have <code>~/.profile</code>, it is never sourced/run when I log into my desktop environment.</li>
  <li>Putting <code>set -Ux PYENV_ROOT $HOME/.pyenv</code> and <code>set -Ux fish_user_paths $PYENV_ROOT/bin $fish_user_paths</code> in <code>~/.profile</code> or <code>~/.config/fish/config.fish</code> doesn't make a difference.</li>
  </ol>
  <p>In the end, even after activating a pyenv-created virtual environment, I still don't have access to what's in it.</p>
  <p>How can I troubleshoot this? Thank you.</p>