在脚本中更改目录似乎会阻止 pdb
在单步执行代码时显示当前行。比较下面的脚本和输出。
import os
import pdb
os.chdir('..')
print 'hello'
pdb.set_trace()
print 'world'
输出:
hello
/Users/username/test.py(6)<module>()
(pdb)
相比之下,
import os
import pdb
print 'hello'
pdb.set_trace()
print 'world'
输出:
hello
/Users/username/test.py(5)<module>()
-> print 'world'
(pdb)
为什么会发生这种情况,是否有办法阻止它(即让 pdb
使用 os.chdir
继续打印脚本中的当前行) ?
最佳答案
此问题的一个原因是从当前目录启动模块/脚本。例如,如果我使用以下命令从 shell 启动我的脚本:
$ ./myscript.py
然后 myscript 使用 os.chdir() 更改当前工作目录 pdb 将在每次停止时停止打印当前行(尽管 list 仍然有效)。另一方面,如果您在像这样运行脚本之前扩展脚本的路径:
$ /Users/me/myproject/myscript.py
然后pdb就不再迷茫了,每次停止都会打印line source
关于python - 为什么在 python 脚本中更改目录会影响 pdb 中的显示上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38856105/