GitHub - pythonic-emacs/pyenv-mode: Integrate pyenv with python-mode.
source link: https://github.com/pythonic-emacs/pyenv-mode
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Pyenv mode
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...
- Setup the
PYENV_VERSION
environment variable andpython-shell-virtualenv-path
custom variable based on user input
Pyenv mode doesn't...
- Override your
exec-path
- Run external shell scripts
- Manage your pyenv installation
- Deal with virtualenvwrapper
Installation
You can simply install the package from Melpa:
M-x package-install RET pyenv-mode
Usage
Add following block to your Emacs configuration:
(pyenv-mode)
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:
- compile commands use proper Python version and environment
- flycheck performs syntax checking according to Python version you use
- anaconda-mode search completions, definitions and references respect the chosen environment
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)
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK