pyCharm2020.1 'Ningún módulo llamado dom' no puede importar xml.dom

Antecedentes del problema (sin sentido)

Escuché que la versión 2020.1 oficialmente admite chino, por lo que actualicé decisivamente la última versión 2020.1 (resulta que solo la nueva versión de IDEA tiene chino), pero un programa de prueba que importó xml.dom de repente informó un error. Este programa es muy simple y ni siquiera importa otros paquetes, y el programa no tiene problemas antes de la actualización, por lo que básicamente se puede determinar que el problema está en el IDE.
Este artículo también es la primera vez que comparto experiencia en CSDN, porque el problema es relativamente simple, no hizo mucha clasificación y registra directamente el proceso de búsqueda de errores

Descripción del problema

El párrafo anterior básicamente dice que el código en sí no debería ser un problema. Publique el código de la parte de importación:

import xml.dom.minidom as xmldom
from xml.dom import Node
# 在 dom 及 Node 下方都有红色波浪线报错

El mensaje de error debajo de dom en la primera línea es: 'No hay ningún módulo llamado dom',
pero incluso si hay este mensaje de error, el programa aún puede ejecutarse normalmente . En teoría, estas dos líneas de errores pueden ignorarse y seguir utilizándose, pero un paciente con limpieza de código no puede tolerar la existencia continua de este error, y los métodos relacionados posteriores en este paquete no se han completado automáticamente. El hombre perezoso dijo que estaba muy incómodo y decidió tratar de resolverlo. Problema

Proceso de resolución

Intenta instalar paquetes relacionados

En términos generales, este tipo de problema es causado por no instalar módulos relacionados, que pueden resolverse fácilmente mediante la instalación o configuración de pip en pyCharm. Por lo tanto, sospecho primero que el nuevo IDE no viene con el paquete xml, pero después de hacer clic en el botón instalar paquete dom que se encuentra debajo del mensaje de error, aunque la instalación del paquete dom es exitosa, el mensaje de error aún existe.
Teniendo en cuenta que dom es parte del paquete xml, el IDE con retraso mental puede haber encontrado directamente un paquete llamado dom para mí (también puede ser el caso), así que considere instalar el paquete xml, pero el nombre no se puede encontrar en la configuración. Se supone que el motivo del paquete 'xml' es: el paquete xml está integrado por el intérprete de Python, por lo que no se proporciona por separado.
También hubo un error aquí. Entre otras opciones proporcionadas por el IDE, se seleccionó el problema de ignorar el paquete dom. Después de hacer clic, los errores de los dos doms ya no eran visibles, lo que causó ciertos obstáculos para la búsqueda del problema posterior.

Intente reiniciar la computadora, reiniciando el IDE

La operación básica de Xiaobai Metropolis, cuando no hay una solución directa al problema, no hay cerebro primero, y resulta que la operación sin cerebro no es muy útil para resolver problemas.

Vuelva a instalar el intérprete de Python

En el primer paso, se considera que el paquete xml está incluido en el intérprete. Se sospecha que el intérprete de Python se dañó accidentalmente durante el proceso de instalación de IDE. Por lo tanto, si el intérprete se reinstala, el error aún existe.

Verifique el paquete xml en el intérprete de python

mensaje de error, normales módulo de importación xml Volver a comprobar encuentra, el xml otros tres submódulos sax, parsers, etreepuede ser introducido a la normalidad, excepto domel módulo no puede ser importado correctamente, se sospecha elimina parcialmente contenido intérprete paquete XML. Busque la carpeta del paquete xml en la ubicación de instalación del intérprete de Python, verifique manualmente el código relevante y descubra que no __init__.pyhay ningún problema de falta de código y que no faltan escrituras en él dom.
Use VSCode para probar el código de error informado por pyCharm, todo es normal, lo que indica que no hay problema con el intérprete de python, el problema solo puede estar en el IDE.

Reinstale pyCharm

Después de bloquear el problema en el IDE, reinstale la versión 2020.1. Durante la instalación, el archivo de configuración de la versión anterior no se hereda. El problema aún existe después de la reinstalación.

Solución final

Como las configuraciones anteriores no se utilizaron durante la reinstalación, puede ver la información de error de dom nuevamente y descubrir que la información de error de las dos líneas de dom no es la misma :

# 第一种调用方式为:
import xml.dom.minidom
# 报错为:"No module named dom"

# 第二种调用方式为:
from xml.dom import Node
# 报错为:"Cannot find reference 'dom' in '__init__.pyi' "

IDE me impulsó __init__.pyia añadir métodos archivo dom, así que abrí el archivo y encontró a su paso D:\Program Files\JetBrains\PyCharm Community Edition 2020.1\plugins\python-ce\helpers\typeshed\stdlib\2and3\xml, pero hay esta carpeta sax, parsers, etreetres sub-carpetas, simplemente no dom.
Copie la carpeta dom del paquete xml debajo del intérprete de python en la ubicación anterior,Resolución de problemas

Explore más

Ubicación de error

Desde el camino de vista, esta carpeta debe pertenecer PyCharm nombrado en un python-ceplugin, pero no encuentra el plug-in en la lista de configuración del plugin, debido a mi tiempo limitado y el nivel, para no continuar explorando en esta dirección.

Diferentes declaraciones de llamada conducen a diferentes mensajes de error

El código justo ahora:

# 第一种调用方式为:
import xml.dom.minidom
# 报错为:"No module named dom"

# 第二种调用方式为:
from xml.dom import Node
# 报错为:"Cannot find reference 'dom' in '__init__.pyi' "

Esta diferencia implica la diferencia entre los dos métodos de llamada. Las razones específicas se pueden estudiar más a fondo, y puede discutir y dar sugerencias.

Publicado 1 artículo original · me gustó 0 · visitas 15

Supongo que te gusta

Origin blog.csdn.net/weixin_42551448/article/details/105499057
Recomendado
Clasificación