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)?

user3472559
la source
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/

Arun
la source
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 ...
Vancent
la source
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
Sameer Khan
la source
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
Kalpit
la source
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

sajid
la source
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
Dmitry
la source
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.

Shagun
la source
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

Brighton Chinhongo
la source