Emacs使用旧版本的python(2.3)我有默认的python模式,有没有办法告诉emacs使用我在我的主目录中的新版本?
btw我正在使用红帽发行版并且没有root权限。
答案 0 :(得分:15)
检查自定义组您要调整的内容是个好习惯。只是做:
M-x customize-group RET python RET
你现在有多种选择应该是有趣的:
Python Python Command
您可以在那里自定义并保存以供进一步的会话。
答案 1 :(得分:9)
尝试添加到您的~/.emacs
文件中:
(setq python-python-command "~/your/python/bin-dir/python")
或
由Emacs运行的python命令通常为python
,因此您可以尝试更改路径的简单方法:
export PATH=~/your/python/bin-dir:$PATH
答案 2 :(得分:1)
python-python-command
适用于年龄较大的" loveshack python.el"。对于使用" gallina python.el"的最新版本的Emacs,请使用变量python-shell-interpreter
。
(setq python-shell-interpreter "/path/to/python")
https://www.emacswiki.org/emacs/PythonProgrammingInEmacs#toc2
答案 3 :(得分:0)
在Windows 10上,我安装了两个版本的Python:
C:\ProgramData\chocolatey\bin
C:\Program Files\Python36\
Emacs使用v3.5,但我更喜欢使用v3.6。因此,我通过编辑Environment Variables:
来执行以下操作来纠正此问题Edit the system environment variables
- > Environment Variables...
System variables
下,选择Path
变量 - > Edit...
- > New
Move up
将新文件路径放在其他Python目录之上。就我而言#4&上面#5,我添加了C:\Program Files\Python36\
(v3.6目录),然后将其移到C:\ProgramData\chocolatey\bin
上方(v3.5目录)
答案 4 :(得分:0)
我知道这个问题是关于一个全局python解释器的,但是许多人可以到这里来寻找为每个项目设置一个python解释器的常见问题。
假设每个项目都有一个virtualenv,一个好的解决方案是在位于项目根目录的.dir-local.el文件中设置python解释器。
.dir-local.el示例:
class PersonControllerSpec extends Specification {
@Shared @AutoCleanup EmbeddedServer embeddedServer = ApplicationContext.run(EmbeddedServer)
@Shared PersonClient client
@Shared PersonService service
void setupSpec(){
client = embeddedServer.applicationContext.getBean(PersonClient)
service = embeddedServer.applicationContext.getBean(PersonService)
}
@Transactional
void cleanup(){
Person.list()*.delete()
}
def "/people should return 2 elements" (){
given:
service.save(new Person(name: "Daniel", lastName: "Araiza", age: 22, phone: "235-547-8761" ))
service.save(new Person(name: "Omar", lastName: "Bautista", age: 32, phone: "765-234-8623"))
when:
List<Person> people = client.list()
then:
people.size() == 2
}
}