GitHub - pythonic-emacs/pyenv-mode: Integrate pyenv with python-mode. (original) (raw)

Pyenv mode

Melpa Melpa-Stable CI

Pyenv mode integrates Fabián E. Gallina's python.el with the pyenv tool. This gives packages which already use python.el (like python-django) pyenv virtual environment support out-of-the-box.

Pyenv mode does...

Pyenv mode doesn't...

Installation

You can simply install the package from Melpa:

M-x package-install RET pyenv-mode

Usage

Add following block to your Emacs configuration:

Now you can specify the pyenv Python version:

M-x pyenv-mode-set

So now when you run inferior Python with:

M-x run-python

The process will start inside the specified Python installation. You can unset the current version with:

M-x pyenv-mode-unset

Goodies

When you set the Python version with pyenv-mode, the following changes happen automatically:

Projectile integration

You can switch Python versions together with your current project. Drop the following lines into your Emacs init file. When you use projectile switch project with the C-c p p key binding pyenv-mode will activate the environment matched to the project's name.

(require 'pyenv-mode)

(defun projectile-pyenv-mode-set () "Set pyenv version matching project name." (let ((project (projectile-project-name))) (if (member project (pyenv-mode-versions)) (pyenv-mode-set project) (pyenv-mode-unset))))

(add-hook 'projectile-after-switch-project-hook 'projectile-pyenv-mode-set)