В дополнение к моему комментарию ранее и вашему последующему обновлению на вопрос:
Сначала определите значение для $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 .
Обновление
Хорошо, получается, что команда pdb
Emacs не предоставляется python-mode
, и она ожидает найти исполняемый файл с именем "pdb". Самый простой способ исправить это - создать оболочку оболочки с именем "pdb" в каталоге на вашем $ PATH:
#!/bin/sh
exec python -m pdb "$@"
(я нашел здесь примечание , предлагающее эту технику.)
Эквивалентом в Windows будет файл с именем pdb.bat, содержащий:
python -u -m pdb %1
(-u
запрещает Python буферизовать свой вывод.)