pyvenv
pyvenv copied to clipboard
pyvenv workon ignoring conda env paths
Env:
- OS X
- Spacemacs [email protected]
Spacemacs ignores the Python version set via pyvenv (SPC-m-V-w, pyvenv-workon) and just uses system's default.
In my case my venv is a Conda environment:
> /Users/frodera/miniconda3/envs/python37/bin/python --version
Python 3.7.0
After setting the env via SPC-m-V-w
, emacs reports that the path of that env is the first one listed in Spacemacs' PATH
and it even reports the name of the apparently loaded env (python37
) in the status bar. However, when running a python script via SPC-m-c-c
it reverts to system's default (2.7.15). See image attached.
getenv "PATH" -> /Users/frodera/miniconda3/envs/python37/bin:/usr/local/opt/coreutils/...
In order to get access the conda environments I have added this to my .spacemacs
:
(defun dotspacemacs/user-config ()
(use-package pyvenv
:ensure t
:init
(setenv "WORKON_HOME" "/Users/frodera/miniconda3/envs")
(pyvenv-mode 1))
)
Not sure if related but I have noticed this error message in the messages buffer, when invoking python execution of the test.py
file:
evil-line-move: End of buffer [9 times]
save-current-buffer: Symbol’s value as variable is void: python-shell--interpreter
Inferior Python finished
compilation ok.
python-shell--interpreter
? Seems like that variable has an extra dash in it, and I cannot find it set anywhere in my Spacemacs installation, only references to similar variables are to python-shell-interpreter
Interestingly, if I do a python-shell-send-buffer
it does open an ipython shell in the conda env running python 3.7.0, as expected:
In [6]: * Python version: 3.7.0 (default, Jun 29 2018, 20:13:13)
[Clang 9.1.0 (clang-902.0.39.2)]
* Executable: /Users/frodera/miniconda3/envs/python37/bin/python
Also, this does not trigger any Symbol’s value as variable is void: python-shell--interpreter
messages.
The same problem happens to me also.
SPC-m-c-c
always calls the python by pyenv global version
, instead of the pyvenv-activate
version.
This only happens to SPC-m-c-c
.
But I think may be it is caused by spacemacs
, instead of pyvenv
.