Почему я получаю эту ошибку при импорте pdb?У объекта 'module' нет атрибута 'ascii_letters' - PullRequest
0 голосов
/ 16 октября 2018

Пытаясь отладить мой код, я импортирую библиотеку 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, возникает та же ошибка.

1 Ответ

0 голосов
/ 16 октября 2018

Один из ваших файлов называется 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'
...