Quando importi docx in python3.3 ho l'errore ImportError: Nessun modulo denominato "eccezioni"


94

quando importi docxho questo errore:

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

Come correggere questo errore ( python3.3, docx 0.2.4)?


2
Il exceptionsmodulo non esiste in Python 3 (le eccezioni ivi definite sono state aggiunte __builtin__comunque). Sembra che la conversione di DocX in Python 3 non sia ancora completa.
Frédéric Hamidi

Risposte:


174

Se stai usando python 3x, non pip install docxandare invece per

pip install python-docx 

È compatibile con python 3.x

Documentazione ufficiale disponibile qui: https://pypi.org/project/python-docx/


questo ha risolto il mio problema, collegamento ufficiale aggiornato nel documento
Roshan Bagdiya

Ha funzionato per me, con Python 3.7.3.
Frank M

2
... e per rimuoverlo docx, puoi fare pip uninstall docxprima di tenerlo pulito!
Jean-Francois T.

15
  1. Disinstallare il modulo docx con pip uninstall docx
  2. Scarica il python_docx-0.8.6-py2.py3-none-any.whlfile da http://www.lfd.uci.edu/~gohlke/pythonlibs/
  3. Esegui pip install python_docx-0.8.6-py2.py3-none-any.whlper reinstallare docx. Questo ha risolto senza problemi l'errore di importazione sopra per me. Solo per fornire una soluzione ...

10

Quando si desidera utilizzare import docx, assicurarsi di installare python-docx , non docx . È possibile installare il modulo eseguendo pip install python-docx.

Il nome dell'installazione docx è per un modulo diverso Tuttavia,

quando importerai il modulo python-docx, dovrai eseguire import docx, non import python-docx.

se vuoi ancora usare il modulo docx allora :

Prima di tutto, dovrai assicurarti che il modulo docx sia installato. In caso contrario, esegui semplicemente pip install docx. Se mostra "* requisito già soddisfatto *", la soluzione è:

  1. Vai alla libreria per trovare il file docx.py , dovrai andare alla directory in cui hai installato python quindi \ Lib \ site-packages \ e trovare il file docx.py
  2. Apri il file docx.py nell'editor di testo e trova questo codice

    from exceptions import PendingDeprecationWarning
    
  3. Sostituisci il codice precedente con
try:
    from exceptions import PendingDeprecationWarning
except ImportError:
    pass
  1. Salva il file
  2. Ora puoi eseguire il modulo import docx in Python 3.x senza alcun problema

8

Se stai usando python 3.x, Assicurarsi di avere entrambi python-docx e DOCX installato.

Installazione di python-docx:

pip install python-docx

Installazione di docx:

pip install docx

6

In Python 3 il modulo delle eccezioni è stato rimosso e tutte le eccezioni standard sono state spostate nel modulo integrato. Significa quindi che non è più necessario importare esplicitamente le eccezioni standard.

copiato da



3

Il problema, come è stato notato in precedenza nei commenti, è che il modulo docx non era compatibile con Python 3. È stato risolto in questa richiesta pull su github: https://github.com/mikemaccana/python-docx/pull/67

Poiché l'eccezione è ora incorporata, la soluzione è non 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

Potresti anche inserire qui lo snippet di codice relativo?
Kamiccolo

0

Devi farlo funzionare con python3.

                     sudo pip3 install python-docx

Questa installazione ha funzionato per me in Python3 senza ulteriori aggiunte.

             python3
             >> import docx

PS: nota che "pip install python-docx" o apt-get python3-docx non sono utili.


Non puoi davvero dire che 'pip install python-docx' non è utile, poiché fa esattamente la stessa cosa del comando pip3 se ti trovi in ​​un ambiente python3
The Javatar

-1

Ho avuto lo stesso problema, ma ha pip install python-docxfunzionato per me, sto usando python 3.7.1

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.