- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个 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
我在运行 M-: exec-path
和运行 M-: (getenv "PATH")
时得到不同的路径(由 M-: (getenv "PATH")
更长)。
有了这个:
pdb
位于何处?如何将它添加到 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/
我是一名优秀的程序员,十分优秀!