简体   繁体   中英

Why I'm getting this error when I import pdb? 'module' object has no attribute 'ascii_letters'

Trying to debug my code, I'm importing the library pdb

import sys
from subprocess import check_call
import pdb

/*functions*/

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

I'm receiving this error:

  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'

If I create a new python file and I try to run pdb, the same error occur.

One of your files is called string.py . Rename it and make sure to delete any *.pyc files from the script's directory.

It is a very bad practice to use names of built-in modules for your own files for that very reason.

$ 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'

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM