kai
kai

Reputation: 2185

How do I configure spacemacs for python 3?

I would like to use spacemacs for python development, but I see a syntax error on Python 3 constructs, like print(*(i + 1 for i in range(n)) or async def foo():. Adding a shebang to my file (#!/usr/bin/python3 or #!/usr/bin/env python3) does not help.

What configuration changes do I need to make to use a specific python version? Ideally per-project or per-file, but global is better than nothing. I have 2.7 and 3.4 installed system-wide, and 3.5 in ~/local (~/local/bin is in my $PATH).

Upvotes: 16

Views: 11512

Answers (2)

kai
kai

Reputation: 2185

The variable that needed to be set was flycheck-python-pycompile-executable, to "python3".

To get support for async, emacs25 must be used (note debian will install emacs24 and emacs25 side-by-side, and use emacs24 by default).

Upvotes: 5

Robin Xing
Robin Xing

Reputation: 136

You don't have to change spacemacs configurations. You can just use pyenv to manage python version.

Install pyenv then in terminal

$ pyenv install 3.5.1
$ pyenv global 3.5.1

Default python interpreter will be set to python 3.5.1.

$ python --version
Python 3.5.1

For more details see here.

Plus, set python-shell-interpreter to python3 may also fix the problem.

Upvotes: 5

Related Questions