为什么导入pdb时出现此错误? “模块”对象没有属性“ ascii_letters”

时间:2018-10-16 17:43:40

标签: python pdb

尝试调试代码,我正在导入库pdb

import sys
from subprocess import check_call
import pdb

/*functions*/

if __name__== "__main__":
  /* Code */

我收到此错误:

  File "reg.py", line 11, in <module>
    import pdb
  File "/usr/lib/python2.7/pdb.py", line 9, in <module>
    import cmd
  File "/usr/lib/python2.7/cmd.py", line 53, in <module>
    IDENTCHARS = string.ascii_letters + string.digits + '_'
AttributeError: 'module' object has no attribute 'ascii_letters'

如果我创建一个新的python文件并尝试运行pdb,则会发生相同的错误。

2 个答案:

答案 0 :(得分:2)

您的一个文件称为string.py。重命名它,并确保从脚本目录中删除所有*.pyc文件。

出于这个原因,对您自己的文件使用内置模块的名称是非常糟糕的做法。

$ echo "import pdb" > string.py
$ python string.py
File "string.py", line 1, in <module>
     import pdb
File "D:\Python37\lib\pdb.py", line 73, in <module>
     import cmd
File "D:\Python37\lib\cmd.py", line 50, in <module>
     IDENTCHARS = string.ascii_letters + string.digits + '_'
AttributeError: module 'string' has no attribute 'ascii_letters'

答案 1 :(得分:0)

您的文件夹中有一个存储所有代码的“ string.py”文件,只需将其重命名然后运行代码,便可以正常工作;)