   :after python
   :config
   (pyenv-mode +1)
-  (add-to-list '+python-mode-name-functions #'pyenv-mode-version nil #'eq))
+  (advice-add #'pyenv-mode-set :after #'+python*update-version)
+  (advice-add #'pyenv-mode-unset :after #'+python*update-version)
+  (add-to-list '+python-version-functions #'pyenv-mode-version nil #'eq))
 
 
 (def-package! pyvenv

  (conda-env-initialize-interactive-shells)
  (after! eshell (conda-env-initialize-eshell))

  (add-to-list '+python-mode-name-functions #'+python-conda-env nil #'eq)

  (advice-add 'anaconda-mode-bootstrap :override #'+python*anaconda-mode-bootstrap-in-remote-environments))

  :after python
  :config
  (defun +python-current-pyvenv () pyvenv-virtual-env-name)
  (add-hook 'pyvenv-post-activate-hooks #'+python|update-version)
  (add-hook 'pyvenv-post-deactivate-hooks #'+python|update-version)
  (add-to-list '+python-version-functions #'+python-current-pyvenv nil #'eq))


(def-package! conda
  :when (featurep! +conda)
  :after python
  :config
  ;; The location of your anaconda home will be guessed from the following:
  ;;
  ;; + ANACONDA_HOME
  ;; + ~/.anaconda3
  ;; + ~/.anaconda
  ;; + ~/.miniconda
  ;; + ~/usr/bin/anaconda3
  ;;
  ;; If none of these work for you, you must set `conda-anaconda-home'
  ;; explicitly. Once set, run M-x `conda-env-activate' to switch between
  ;; environments
  (unless (cl-loop for dir in (list conda-anaconda-home
                                    "~/.anaconda"
                                    "~/.miniconda"
