gpt4 book ai didi

Emacs 中的 Python 模式 : No such file or directory, pdb

转载 作者:太空狗 更新时间:2023-10-29 17:42:29 26 4
gpt4 key购买 nike

我有一个 python 脚本,我想用 python-mode 调试它.我读了 this thread我可以使用 M-x pdb 调试我的 python 脚本,但是我收到以下错误:

Searching for program: no such file or directory, pdb

我可以在迷你缓冲区的提示中提供 python -m pdb my_source_file.py,但如果 Emacs 可以直接从我运行 M-x 的文件中推断出这个命令就好了pdb

更新:

运行于:

  • 红帽企业 Linux 服务器版本 5.1 (Tikanga)
  • Emacs 23.3.1

路径之间的差异

我在运行 M-: exec-path 和运行 M-: (getenv "PATH") 时得到不同的路径(由 M-: (getenv "PATH") 更长)。

有了这个:

  • pdb 位于何处?如何将它添加到 Emacs 路径?
  • 有没有办法让 Emacs 同时查看环境变量 PATH 持有的路径?

最佳答案

根据我之前的评论以及您随后对问题的更新:

首先找出适用于您的终端的 $PATH 的值。使用 which pdb 查找 pdb 可执行文件所在的位置。

然后,在Emacs中显式设置$PATH环境变量,同步到exec-path如下:

(setenv "PATH" "/usr/local/bin:/usr/bin:/bin:/some/other/dir")
(setq exec-path (split-string (getenv "PATH") path-separator))

您可能还需要显式设置 PYTHONPATH 或类似的环境变量;您可以使用上面的“setenv”行之类的行来做到这一点,或者只使用 exec-path-from-shell elisp package .

更新

好吧,原来 Emacs 的 pdb 命令不是由 python-mode 提供的,它希望找到一个名为“pdb”的可执行文件。解决此问题的简单方法是在 $PATH 上的目录中创建一个名为“pdb”的 shell 包装器:

#!/bin/sh
exec python -m pdb "$@"

(我发现了一个注释 here 建议使用这种技术。)

Windows 下的等价物是一个名为 pdb.bat 的文件,其中包含:

python -u -m pdb %1

(-u 阻止 Python 缓冲其输出。)

关于Emacs 中的 Python 模式 : No such file or directory, pdb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9167614/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com