根据我之前的评论,以及您对问题的后续更新:
首先找出一个$PATH
适用于您终端的值。使用which pdb
找出其中pdb
的可执行的位置。
然后,$PATH
在Emacs中显式设置环境变量,并将其同步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软件包。
更新资料
好的,事实证明Emacs的pdb
命令不是由提供的python-mode
,它希望找到一个名为“ pdb”的可执行文件。解决此问题的简单方法是在$ PATH的目录中创建一个名为“ pdb”的外壳程序:
#!/bin/sh
exec python -m pdb "$@"
(我在这里发现了一条说明该技术的注释。)
Windows下的等效项是名为pdb.bat的文件,其中包含:
python -u -m pdb %1
(这-u
可防止Python缓冲其输出。)