Emacs uses an older version of python(2.3) i have for the default python mode, is开发者_C百科 there a way for me to tell emacs to use the newer version that i have in my home directory?
btw I'm using a red hat distro and dont have root privileges.
It is good habit to check customize-group of things you wanna tweak. Just do:
M-x customize-group RET python RET
you've got now multiple options of which one should be interesting:
Python Python Command
You can customize it there and Save for further sessions.
Via .emacs:
Try to add to your ~/.emacs
file:
(setq python-python-command "~/your/python/bin-dir/python")
or
Via the shell environment:
The python command that is run by Emacs is typically python
, so you can try the simple approach of changing your path:
export PATH=~/your/python/bin-dir:$PATH
python-python-command
is for the older "loveshack python.el". For recent versions of Emacs, which use "gallina python.el", use the variable python-shell-interpreter
.
(setq python-shell-interpreter "/path/to/python")
https://www.emacswiki.org/emacs/PythonProgrammingInEmacs#toc2
On Windows 10, I had two versions of Python installed:
- v3.5 installed under
C:\ProgramData\chocolatey\bin
- v3.6 installed under
C:\Program Files\Python36\
Emacs was using v3.5 but I preferred for it to use v3.6. Therefore, I did the following to correct this by editing my Environment Variables:
- Start -> Type in "environment variables"
- Select
Edit the system environment variables
->Environment Variables...
- Under
System variables
, selectPath
variable ->Edit...
->New
- Add the path to your desired Python directory
- Click
Move up
to place the new filepath above whatever the other Python directory.
In my case for #4 & #5 above, I added C:\Program Files\Python36\
(v3.6 directory) and then moved it above C:\ProgramData\chocolatey\bin
(v3.5 directory)
I know that the question is about a global python interpreter, but many can arrive here looking for the common problem of setting one python interpreter per project.
Supposing one has a virtualenv per project, a good solution is to set the python interpreter at .dir-local.el file located at the project root.
.dir-local.el example:
(
(python-mode . (
(python-shell-interpreter . "~/my_project/venv/bin/python")
(flycheck-checker . python-pylint)
(flycheck-python-pylint-executable . "~/myproject/venv/bin/python")
(flycheck-pylintrc . "~/my_project/.pylintrc")
)
)
)
精彩评论