Cuando importo docx en python3.3 tengo el error ImportError: No hay módulo llamado 'excepciones'

88

cuando importo docxtengo este error:

>File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/docx-0.2.4-py3.3.egg/docx.py", line 30, in <module>
        from exceptions import PendingDeprecationWarning
    ImportError: No module named 'exceptions'

¿Cómo solucionar este error ( python3.3, docx 0.2.4)?

usuario3472559
fuente
2
El exceptionsmódulo no existe en Python 3 (las excepciones definidas allí se agregaron de __builtin__todos modos). Parece que la conversión de DocX a Python 3 aún no está completa.
Frédéric Hamidi

Respuestas:

166

Si está utilizando Python 3x, no lo haga pip install docxen su lugar, vaya a

pip install python-docx 

Es compatible con Python 3.x

Documentación oficial disponible aquí: https://pypi.org/project/python-docx/

Arun
fuente
esto resolvió mi problema, enlace oficial actualizado en el documento
Roshan Bagdiya
Funcionó para mí, con Python 3.7.3.
Frank M
2
... y para quitarlo docx, ¡puedes hacerlo pip uninstall docxprimero para mantenerlo limpio!
Jean-Francois T.
15
  1. Desinstale el módulo docx con pip uninstall docx
  2. Descargue el python_docx-0.8.6-py2.py3-none-any.whlarchivo de http://www.lfd.uci.edu/~gohlke/pythonlibs/
  3. Ejecute pip install python_docx-0.8.6-py2.py3-none-any.whlpara reinstalar docx. Esto resolvió el error de importación anterior sin problemas para mí. Solo para brindar una solución ...
Vancent
fuente
9

Cuando quiera usarlo import docx, asegúrese de instalar python-docx , no docx . Puede instalar el módulo ejecutando pip install python-docx.

El nombre de instalación docx es para un módulo diferente Sin embargo,

cuando vaya a importar el módulo python-docx, deberá ejecutar import docx, no import python-docx.

si aún desea usar el módulo docx, entonces :

En primer lugar, deberá asegurarse de que el módulo docx esté instalado. Si no, simplemente corre pip install docx. Si muestra '* requisito ya satisfecho *', entonces la solución es:

  1. Vaya a la biblioteca para encontrar el archivo docx.py , deberá ir al directorio donde instaló Python, luego \ Lib \ site-packages \ y buscar el archivo docx.py
  2. Abra el archivo docx.py en el editor de texto y busque este código

    from exceptions import PendingDeprecationWarning
    
  3. Reemplace el código anterior con
try:
    from exceptions import PendingDeprecationWarning
except ImportError:
    pass
  1. Guarda el archivo
  2. Ahora puede ejecutar el módulo de importación docx en Python 3.x sin ningún problema
Sameer Khan
fuente
8

Si está utilizando 3.x pitón, Asegúrate de que tienes tanto pitón-docx y docx instalado.

Instalando python-docx:

pip install python-docx

Instalación de docx:

pip install docx
Kalpit
fuente
6

En Python 3 se eliminó el módulo de excepciones y todas las excepciones estándar se movieron al módulo incorporado. Lo que significa que ya no hay necesidad de importar explícitamente ninguna excepción estándar.

copiado de

dijo
fuente
3

El problema, como se señaló anteriormente en los comentarios, es que el módulo docx no era compatible con Python 3. Se solucionó en esta solicitud de extracción en github: https://github.com/mikemaccana/python-docx/pull/67

Dado que la excepción ahora está integrada, la solución es no importarla.

docx.py
@@ -27,7 +27,12 @@
 except ImportError:
     TAGS = {}

-from exceptions import PendingDeprecationWarning
+# Handle PendingDeprecationWarning causing an ImportError if using Python 3
+try:
+    from exceptions import PendingDeprecationWarning
+except ImportError:
+    pass
+
 from warnings import warn

 import logging
Dmitry
fuente
¿Podría publicar también un fragmento de código relacionado aquí?
Kamiccolo
0

Necesita hacer que funcione con python3.

                     sudo pip3 install python-docx

Esta instalación funcionó para mí en Python3 sin más adiciones.

             python3
             >> import docx

PD: Tenga en cuenta que 'pip install python-docx' o apt-get python3-docx no son útiles.

Shagun
fuente
Realmente no se puede decir que 'pip install python-docx' no es útil, ya que hace exactamente lo mismo que el comando pip3 si se encuentra en un entorno python3
The Javatar
-1

Tuve el mismo problema, pero pip install python-docxfuncionó para mí, estoy usando Python 3.7.1

Brighton Chinhongo
fuente