【问题标题】:Emacs doesn't start python interpreterEmacs 不启动 python 解释器
【发布时间】:2022-01-14 21:36:05
【问题描述】:

我最近使用 Linux 提供的工具在我的 PC 和 Python 3.9 和 Emacs 27.1 上安装了 Debian Linux 11。 我在 Emacs 上写了一个小的斐波那契测试文件。 Emacs 显示 python 菜单,格式化代码,进行正确的自动缩进 --> 一切都很好。我保存了文件,想调用Python解释器C-c C-p,但是Emacs没有找到python。

我发现 Python 也不能从 shell 启动。我通过使用别名编辑本地 shell 脚本 .bashrc 解决了这个问题

alias python='/usr/bin/python3.9'

使用python --version 进行测试以版本号响应,一切正常,但是 emacs 也找不到 python。 从 Emacs shell (M-x shell) 开始也可以这样做,但是 C-c C-p 仍然不起作用。

我不知道是 DEBIAN 还是 Emacs 的问题。似乎是突触包管理器安装程序没有完全配置,或者 Emacs 配置中存在错误。

我在装有 Win10 的笔记本电脑上进行了相同的配置,并且 Emacs 在 Python 上运行良好。

我是 Linux 和 Emacs 的新手,希望得到一个解决方案,我不需要深入了解内部结构。

说实话,我有点失望,简单的事情在这里没有运行。

【问题讨论】:

  • 如果您不关心任何其他 python 版本,则将/usr/bin/python 符号链接到/usr/bin/python3.9 - 或者更好地使用alternatives 机制来执行等效操作(需要root 权限)。别名在特定的 shell 会话中定义并且不可导出(换句话说,从 shell 启动的任何程序都不知道它们 - 与环境变量相反),因此即使您从该 shell 会话启动 emacs,Emacs 也赢了对他们一无所知。这不是 Emacs 的问题(如果它是一个问题的话)。

标签: python emacs debian


【解决方案1】:

好的,现在我将以下行放入 *scratch*-buffer 并对此进行评估:

(setq python-shell-interpreter "python3.9")

也可以减少到

(setq python-shell-interpreter "python3")

C-c C-p 现在调用 python shell,它对评估 python 代码做出反应。

下一步我在文件夹 ~/.emacs.d 中创建文件 init.el 并将这一行放入。现在启动 Emacs 可以工作了。 在调用 python shell 时,我看到 Emacs 启动了一个名为 python.el 的脚本。也许这应该更正,但我找不到它。

对我来说它现在适合,但这意味着 Emacs 不会从操作系统中获取任何别名,但必须单独配置 - 至少在使用 Linux 时是这样,因为在 Win10 中显然没有必要设置此变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-11
    • 2018-09-19
    • 2020-11-23
    • 1970-01-01
    • 1970-01-01
    • 2017-03-16
    相关资源
    最近更新 更多