Beim Import von docx in python3.3 ist der Fehler ImportError aufgetreten: Kein Modul mit dem Namen 'Ausnahmen'

88

Beim Import habe docxich folgenden Fehler:

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

Wie behebe ich diesen Fehler ( python3.3, docx 0.2.4)?

user3472559
quelle
2
Das exceptionsModul ist in Python 3 nicht vorhanden (dort definierte Ausnahmen wurden __builtin__ohnehin hinzugefügt ). Die Konvertierung von DocX nach Python 3 scheint noch nicht abgeschlossen zu sein.
Frédéric Hamidi

Antworten:

166

Wenn Sie Python 3x verwenden, wählen Sie pip install docxstattdessen nicht

pip install python-docx 

Es ist kompatibel mit Python 3.x.

Offizielle Dokumentation finden Sie hier: https://pypi.org/project/python-docx/

Arun
quelle
Dies löste mein Problem, aktualisierter offizieller Link im Dokument
Roshan Bagdiya
Arbeitete für mich mit Python 3.7.3.
Frank M
2
... und um es zu entfernen docx, können Sie es pip uninstall docxzuerst sauber halten!
Jean-Francois T.
15
  1. Deinstallieren Sie das docx-Modul mit pip uninstall docx
  2. python_docx-0.8.6-py2.py3-none-any.whlDatei herunterladen von http://www.lfd.uci.edu/~gohlke/pythonlibs/
  3. Führen Sie aus pip install python_docx-0.8.6-py2.py3-none-any.whl, um docx neu zu installieren. Dies löste den obigen Importfehler reibungslos für mich. Nur um eine Lösung zu finden ...
Vancent
quelle
9

Wenn Sie verwenden möchten import docx, müssen Sie python-docx und nicht docx installieren. Sie können das Modul installieren , indem Sie es ausführen pip install python-docx.

Der Installationsname docx ist für ein anderes Modul.

Wenn Sie das Python-Docx-Modul importieren möchten, müssen Sie es import docxnicht ausführen import python-docx.

Wenn Sie das docx-Modul weiterhin verwenden möchten, gehen Sie wie folgt vor :

Zunächst müssen Sie sicherstellen, dass das docx- Modul installiert ist. Wenn nicht, dann einfach ausführen pip install docx. Wenn "* Anforderung bereits erfüllt *" angezeigt wird, lautet die Lösung:

  1. Gehen Sie in die Bibliothek, um die Datei docx.py zu finden. Gehen Sie in das Verzeichnis, in dem Sie Python installiert haben, und dann in \ Lib \ site-packages \ und suchen Sie die Datei docx.py
  2. Öffnen Sie die Datei docx.py im Texteditor und suchen Sie diesen Code

    from exceptions import PendingDeprecationWarning
    
  3. Ersetzen Sie den obigen Code durch
try:
    from exceptions import PendingDeprecationWarning
except ImportError:
    pass
  1. Speicher die Datei
  2. Jetzt können Sie das import docx- Modul in Python 3.x problemlos ausführen
Sameer Khan
quelle
8

Wenn Sie Python 3.x verwenden, stellen Sie sicher , dass Sie beide Python-docx & docx installiert.

Python-docx installieren:

pip install python-docx

Docx installieren:

pip install docx
Kalpit
quelle
6

In Python 3 wurde das Ausnahmemodul entfernt und alle Standardausnahmen in das integrierte Modul verschoben. Dies bedeutet, dass keine Standardausnahmen mehr explizit importiert werden müssen.

kopiert von

sajid
quelle
3

Das Problem ist, wie bereits in den Kommentaren erwähnt, dass das docx-Modul nicht mit Python 3 kompatibel war. Es wurde in dieser Pull-Anfrage auf github behoben: https://github.com/mikemaccana/python-docx/pull/67

Da die Ausnahme jetzt integriert ist, besteht die Lösung darin, sie nicht zu importieren.

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
quelle
Könnten Sie bitte auch hier einen verwandten Code-Ausschnitt posten?
Kamiccolo
0

Sie müssen dafür sorgen, dass es mit Python3 funktioniert.

                     sudo pip3 install python-docx

Diese Installation funktionierte für mich in Python3 ohne weitere Ergänzungen.

             python3
             >> import docx

PS: Beachten Sie, dass 'pip install python-docx' oder apt-get python3-docx nicht nützlich sind.

Shagun
quelle
Sie können nicht wirklich sagen, dass 'pip install python-docx' nicht nützlich ist, da es genau dasselbe tut wie der Befehl pip3, wenn Sie sich in einer Python3-Umgebung befinden
The Javatar
-1

Ich hatte das gleiche Problem, pip install python-docxarbeitete aber für mich, ich verwende Python 3.7.1

Brighton Chinhongo
quelle