Tratando de depurar mi código, estoy importando la biblioteca pdb

import sys
from subprocess import check_call
import pdb

/*functions*/

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

Estoy recibiendo este 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'

Si creo un nuevo archivo de Python e intento ejecutar pdb, se produce el mismo error.

-1
TMoraes 16 oct. 2018 a las 20:43

2 respuestas

La mejor respuesta

Uno de sus archivos se llama string.py. Cámbiele el nombre y asegúrese de eliminar cualquier archivo *.pyc del directorio del script.

Es una muy mala práctica usar nombres de módulos integrados para sus propios archivos por esa misma razón.

$ 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'
2
DeepSpace 16 oct. 2018 a las 17:49

Hay un archivo 'string.py' en su carpeta donde se almacenan todos los códigos, solo cámbiele el nombre y luego ejecute el código, funcionará bien;)

0
rajat prakash 1 feb. 2020 a las 05:46