Lors de l'importation de docx dans python3.3, j'ai l'erreur ImportError: aucun module nommé 'exceptions'


88

lorsque j'importe, docxj'ai cette erreur:

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

Comment corriger cette erreur ( python3.3, docx 0.2.4)?


2
Le exceptionsmodule n'existe pas dans Python 3 (les exceptions qui y sont définies ont été ajoutées de __builtin__toute façon). Il semble que la conversion de DocX en Python 3 ne soit pas encore terminée.
Frédéric Hamidi

Réponses:


166

Si vous utilisez python 3x, n'allez pas à la pip install docxplace

pip install python-docx 

Il est compatible avec python 3.x

Documentation officielle disponible ici: https://pypi.org/project/python-docx/


cela a résolu mon problème, lien officiel mis à jour dans le document
Roshan Bagdiya

A travaillé pour moi, avec Python 3.7.3.
Frank M

2
... et pour l'enlever docx, vous pouvez faire d' pip uninstall docxabord pour le garder propre!
Jean-Francois T.

15
  1. Désinstaller le module docx avec pip uninstall docx
  2. Téléchargez le python_docx-0.8.6-py2.py3-none-any.whlfichier sur http://www.lfd.uci.edu/~gohlke/pythonlibs/
  3. Exécutez pip install python_docx-0.8.6-py2.py3-none-any.whlpour réinstaller docx. Cela a résolu l'erreur d'importation ci-dessus en douceur pour moi. Juste pour apporter une solution ...

9

Lorsque vous souhaitez l'utiliser import docx, assurez-vous d'installer python-docx , pas docx. Vous pouvez installer le module en exécutant pip install python-docx.

Le nom d'installation docx est pour un module différent Cependant,

lorsque vous allez importer le module python-docx, vous devrez exécuter import docx, pas import python-docx.

si vous souhaitez toujours utiliser le module docx, alors :

Tout d'abord, vous devrez vous assurer que le module docx est installé. Sinon, exécutez simplement pip install docx. S'il indique «* exigence déjà satisfaite *», la solution est:

  1. Allez dans la bibliothèque pour trouver le fichier docx.py , vous devrez aller dans le répertoire où vous avez installé python puis \ Lib \ site-packages \ et trouver le fichier docx.py
  2. Ouvrez le fichier docx.py dans l'éditeur de texte et recherchez ce code

    from exceptions import PendingDeprecationWarning
    
  3. Remplacez le code ci-dessus par
try:
    from exceptions import PendingDeprecationWarning
except ImportError:
    pass
  1. Enregistrez le fichier
  2. Vous pouvez maintenant exécuter le module import docx dans Python 3.x sans aucun problème

8

Si vous utilisez python 3.x, assurez-vous que python-docx et docx sont installés.

Installation de python-docx:

pip install python-docx

Installation de docx:

pip install docx

6

Dans Python 3, le module d'exceptions a été supprimé et toutes les exceptions standard ont été déplacées vers le module intégré. Cela signifie qu'il n'est plus nécessaire de faire une importation explicite de toute exception standard.

copié depuis



3

Le problème, comme indiqué précédemment dans les commentaires, est que le module docx n'était pas compatible avec Python 3. Il a été corrigé dans cette pull-request sur github: https://github.com/mikemaccana/python-docx/pull/67

Puisque l'exception est désormais intégrée, la solution est de ne pas l'importer.

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

Pourriez-vous s'il vous plaît également publier un extrait de code associé ici?
Kamiccolo

0

Vous devez le faire fonctionner avec python3.

                     sudo pip3 install python-docx

Cette installation a fonctionné pour moi en Python3 sans aucun ajout supplémentaire.

             python3
             >> import docx

PS: Notez que les options 'pip install python-docx' ou apt-get python3-docx ne sont pas utiles.


Vous ne pouvez pas vraiment dire que 'pip install python-docx' n'est pas utile, car il fait exactement la même chose que la commande pip3 si vous êtes dans un environnement python3
The Javatar

-1

J'ai eu le même problème, mais pip install python-docxj'ai travaillé pour moi, j'utilise python 3.7.1

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.