为什么我得到AttributeError:'module'对象没有属性'set_trace'

问题描述 投票:1回答:3
import pdb 
print("program started") 
c=100 
d=200 
pdb.set_trace() 
def fun(a,b): 
    print a,b 
    return a+b 
fun(c,d) 
for i in [1,2,3,4,5]: 
    print 10/i 
    print ("other statements in program") 
print ("program ended")
python pdb
3个回答
6
投票

python模块pdb具有set_trace()功能。由于您的程序没有找到它,它正在导入其他内容。几乎可以肯定,您将程序(或同一目录中的其他程序)命名为pdb.py


0
投票

这对我来说可以

`

[root@ebs-49393 tmp]# cat test.py 
import json,pdb
buf = open('./a.txt').read()
j = json.loads(buf)
pdb.set_trace()
print j
[root@ebs-49393 tmp]# python test.py 
> /tmp/test.py(5)<module>()
-> print j
(Pdb) list
  1     import json,pdb
  2     buf = open('./a.txt').read()
  3     j = json.loads(buf)
  4     pdb.set_trace()
  5  -> print j
[EOF]

`

同样在交互模式下,您可以使用help(pdb)查看它是否使用了正确的模块。


0
投票

在这里曾经几次,要么你的文件是pdb.pycode.py或一些保留文件名python识别。


0
投票

你的python文件名不应该是pdb.py.我最初保存它像这样,我得到了同样的错误,将文件名更改为pdb1.py运行良好。


0
投票

切勿将导入程序的库用作该目录中任何文件的文件名。导入功能首先检查您正在使用的目录中安装的模块,然后在已设置的python环境中进行检查。

© www.soinside.com 2019 - 2024. All rights reserved.