15

两天前我换了 Emacs 23,最近让我很头疼,特别是因为我安装了两个 Python 版本,旧的 2.7 和 3。因为我通常想启动 python 3 解释器,如果我可以以某种方式告诉 Emacs 使用 python 3 而不是 2.7。

此外,我找不到有助于突出显示 python3 语法的模块。我目前正在使用 python-mode.el 进行突出显示。

另外,如果有人对哪个模块最适合显示 pydoc 有一个很好的提示,我将非常感激。

提前致谢!

4

7 回答 7

13

如果您正在使用python-mode.el,则可以通过设置变量来指定要作为劣等进程执行的二进制文件py-python-command,即:

(setq py-python-command "python3")

当然,如果二进制文件不同,您需要提供系统上存在的二进制文件的名称来代替"python3"。在python.el中,要设置的类似变量是python-python-command

就使用而言pydoc,有几种可能性。首先,您可以简单地help()在 Python 劣质进程内部执行。如果您确实选择了该选项,您可能会发现将以下代码添加到文件中很有用.emacs

(setenv "PAGER" "cat")

这是必要的,因为交互式寻呼机(例如 、、less等)在劣质进程缓冲区内不能特别好地工作。其次,您可以安装包含文档的 Texinfo 包并使用 Emacs 的浏览器(qv, Emacs 中的Python 编程)。最后,如果您选择使用,它包括一个名为的交互式功能,可以按需查找帮助(我怀疑应该有类似的东西)。如果您搜索一下,我相信您也可以找到其他方法和/或第三方包。moremostinfopython.elpython-describe-symbolpydocpython-mode.el

于 2012-06-17T14:31:55.260 回答
7
  • [RET] = 输入或返回键。
  • M = Meta 或 Alt 键。

如果您想让 Emacs 为您完成繁重的工作,请通过 Emacs 设置对话框让 Emacs 自动设置它。

M-x customize-variable [RET] python-shell-interpreter [RET]

应该会出现一个新缓冲区,您可以在其中自定义正在使用的 python 解释器。

右侧的字段Python Shell Interpreter:将是您正在使用的当前解释器。在我的情况下,python我将其更改为python3. 然后移动固化器以选择Apply and Save上面的按钮并点击 [RET] 以使 Emacs 尊重新设置。或者,您可以用鼠标单击按钮。

下次打开 Emacs python 解释器时,它将使用您在设置对话框中设置的新 python。

于 2019-06-03T10:56:51.600 回答
4

在我做了以下事情之后,我得到了这样的行为:在 emacs 中编辑 Python 文件时,Cc Cp 使用 Python3 解释器创建一个新缓冲区。

将以下内容添加到您的 .emacs 文件中:

(defcustom python-shell-interpreter "python3"
  "Default Python interpreter for shell."
  :type 'string
  :group 'python)

我之所以尝试这个,是因为我发现

(defcustom python-shell-interpreter "python"
  "Default Python interpreter for shell."
  :type 'string
  :group 'python)

在 python.el 中。我假设(i)“python”可以用“python3”代替,(ii)这将覆盖python.el中的定义。

这很可能是有原因的,为什么这是不雅的、粗暴的或其他不好的。我是一个emacs新手。

于 2017-03-01T17:05:37.640 回答
1

启动一个 python 解释器

MX python RET

(默认解释器)

MX python版本

其中 VERSION 表示任何已安装的版本

于 2012-07-23T17:45:09.900 回答
1

现在是 2020 年 12 月,我使用的是 EMACS 25,否则未针对 python 进行配置,我发现:

(setq python-shell-interpreter "python3")

添加到我的 .emacs 文件中完成了这项工作,并导致了一种使用 python3 的相当直观的方式。C-c C-c将我的文件发送给解释器(或要求我启动一个新的解释器,并告诉我如何)。

当然,现在 python3 解释器对任何 python 文件都运行,所以 python 2 程序不起作用。

我正在想象一个更美好的世界,emacs 会查看#!/usr/bin/env python2我文件顶部的行,并通过某种疯狂的高科技魔法找出应该启动哪个解释器。

于 2020-12-15T13:19:07.730 回答
0

注意 python-mode.el 知道如何检测所需版本的层次结构

shebang 在 py-execute-THING-PYTHONVERSION 的设置之前 py-shell-name

也将在 shebang 之前,因为命令是

见菜单 PyExec

于 2012-07-23T11:46:26.393 回答
0

受@serv-inc 回答的启发,您也可以将

(setq python-shell-interpreter "python3")

到您./.emacs.d/init.el或您存储配置的位置。

于 2019-10-15T11:55:55.520 回答