My system is a Mac and I have both python 2 and 3 installed. I am currently working on a side project for which I want to use django 1.8 and python 3.4.

I have created a virtual environment with the python 3 command pyvenv venv in the parent folder of my project (I prefer to have my python project folders to be self contained).

At the moment, I cannot get emacs to recognise and therefore limit all code related assist to the virtual environment.

In addition, is it possible to setup a per project settings such that I can have different projects use different python versions and environment? The ideal scenario will be, when I change into a project directory and start emacs, it will pick all it's environment settings from that project directory according to some local settings file.

I've been seeking help on google and irc for a while now without succes

  • I don't know the difference between pyvenv and virtualevn, which I'm familiar with, but can't you just bind python-shell-virtualenv-root to the right path? Either via a file variables or dir variables. E.g. # -*- python-shell-virtualenv-root: "../env" -*-. If this does not work with pyvenv please fill a bug report, M-x report-emacs-bug. – rasmus Jun 28 '15 at 11:22

There is a package called pyvenv to manage virtual environmnets in emacs. Try installing it with

`M-x package-install RET pyvenv RET`

Now You to activate env in your emacs, You can run

M-x pyvenv-activate RET <path-to-venv>

Checkout: https://github.com/jorgenschaefer/pyvenv

For per project management, You can use hooks to activate venv automatically.

  • i have do it, but i can't type pyvenv-activate :-( – zobi8225 Jan 16 '18 at 14:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.