При импорте docx в python3.3 у меня возникает ошибка ImportError: нет модуля с именем «исключения»

когда я импортирую docx, у меня возникает такая ошибка:

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

Как исправить эту ошибку (python3.3, docx 0.2.4)?


person user3472559    schedule 31.03.2014    source источник
comment
Модуль exceptions не существует в Python 3 (определенные там исключения все равно были добавлены в __builtin__). Похоже, преобразование DocX в Python 3 еще не завершено.   -  person Frédéric Hamidi    schedule 31.03.2014


Ответы (9)


Если вы используете python 3x, не делайте pip install docx вместо этого

pip install python-docx 

Он совместим с python 3.x

Официальная документация доступна здесь: https://pypi.org/project/python-docx/

person Arun    schedule 29.05.2017
comment
это решило мою проблему, обновила официальную ссылку в документе - person Roshan Bagdiya; 02.08.2018
comment
Работал у меня с Python 3.7.3. - person Frank M; 04.06.2019
comment
... и чтобы удалить docx, вы можете сначала сделать pip uninstall docx, чтобы он был чистым! - person Jean-Francois T.; 19.03.2020

  1. Удалите модуль docx с помощью pip uninstall docx
  2. Загрузите файл python_docx-0.8.6-py2.py3-none-any.whl со страницы http://www.lfd.uci.edu/~gohlke/pythonlibs/
  3. Запустите pip install python_docx-0.8.6-py2.py3-none-any.whl, чтобы переустановить docx. Это без проблем решило указанную выше ошибку импорта. Просто чтобы предложить решение ...
person Vancent    schedule 04.03.2017
comment
Единственный способ, который сработал для меня! - person Mohamed Yacout; 17.03.2021

Если вы хотите использовать import docx, обязательно установите python-docx, не docx. Вы можете установить модуль, запустив pip install python-docx.

Имя установки docx предназначено для другого модуля. Однако

когда вы собираетесь импортировать модуль python-docx, вам нужно будет запустить import docx, а не import python-docx.

если вы все еще хотите использовать модуль docx, то:

Прежде всего, вам нужно убедиться, что установлен модуль docx. Если нет, просто запустите pip install docx. Если он показывает «* требование уже выполнено *», то решение:

  1. Перейдите в библиотеку, чтобы найти файл docx.py, вам нужно перейти в каталог, в который вы установили python, затем \ Lib \ site-packages \ и найти docx.py файл
  2. Откройте файл docx.py в текстовом редакторе и найдите этот код.

    from exceptions import PendingDeprecationWarning
    
  3. Замените приведенный выше код на
try:
    from exceptions import PendingDeprecationWarning
except ImportError:
    pass
  1. Сохраните файл
  2. Теперь вы можете без проблем запустить модуль import docx в Python 3.x
person Sameer Khan    schedule 13.06.2020

Вы можете установить docx, а не python-docx

Вы можете увидеть это при установке python-docx

http://python-docx.readthedocs.io/en/latest/user/install.html#install

person 某某某    schedule 02.05.2017
comment
Модуль исключений не найден - это ошибка, которая появляется при установке неправильной библиотеки. - person juan Isaza; 04.06.2017

Если вы используете python 3.x, убедитесь, что у вас установлены как python-docx, так и docx.

Установка python-docx:

pip install python-docx

Установка docx:

pip install docx
person Kalpit    schedule 26.04.2020

В Python 3 модуль исключений был удален, а все стандартные исключения были перенесены во встроенный модуль. Это означает, что больше нет необходимости делать явный импорт каких-либо стандартных исключений.

скопировано из

person sajid    schedule 10.04.2018

Проблема, как отмечалось ранее в комментариях, заключается в том, что модуль docx несовместим с Python 3. Это было исправлено в этом запросе на вытягивание на github: https://github.com/mikemaccana/python-docx/pull/67

Поскольку теперь исключение встроено, решение состоит в том, чтобы не импортировать его.

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
person Dmitry    schedule 24.08.2015
comment
Не могли бы вы также разместить здесь фрагмент кода? - person Kamiccolo; 24.08.2015

У меня была такая же проблема, но pip install python-docx у меня сработало, я использую python 3.7.1

person Brighton Chinhongo    schedule 06.11.2019

Вам нужно заставить его работать с python3.

                     sudo pip3 install python-docx

Эта установка работала для меня на Python3 без каких-либо дополнительных дополнений.

             python3
             >> import docx

PS: обратите внимание, что pip install python-docx или apt-get python3-docx бесполезны.

person Shagun    schedule 05.04.2020
comment
Вы не можете сказать, что pip install python-docx бесполезен, поскольку он делает то же самое, что и команда pip3, если вы находитесь в среде python3. - person The Javatar; 05.04.2020