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

时间:2016-07-13 07:07:22

标签: python pdb

if (!Objects.equals(oldCall.getCallLogDate(), newCall.getCallLogDate()) {
    System.out.println("Some useful message...");
}

6 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分: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]

`

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

答案 2 :(得分:0)

几次,您的文件是DiscountPercentProductName或python可以识别的某些保留文件名。

答案 3 :(得分:0)

您的python文件名不应为 pdb.py 。我最初是这样保存它的,但遇到同样的错误,将文件名更改为 pdb1.py 效果很好。

答案 4 :(得分:0)

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

答案 5 :(得分:-1)

这是因为python文件的名称与您要导入的文件相同,在这种情况下,您的文件名是 pdb.py ,而您正在尝试导入pdb < / strong>。这可能导致循环导入。重命名该文件,它将起作用。