Ao importar docx em python3.3, recebo o erro ImportError: Nenhum módulo denominado 'exceções'

88

quando eu importo, docxeu tenho este erro:

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

Como corrigir esse erro ( python3.3, docx 0.2.4)?

user3472559
fonte
2
O exceptionsmódulo não existe no Python 3 (as exceções definidas lá foram adicionadas de __builtin__qualquer maneira). Parece que a conversão de DocX para Python 3 ainda não foi concluída.
Frédéric Hamidi

Respostas:

166

Se você estiver usando python 3x, não pip install docxvá para

pip install python-docx 

É compatível com python 3.x

Documentação oficial disponível aqui: https://pypi.org/project/python-docx/

Uma corrida
fonte
isso resolveu meu problema, atualizou o link oficial no documento
Roshan Bagdiya
Funcionou para mim, com Python 3.7.3.
Frank M
2
... e para remover docx, você pode fazer pip uninstall docxprimeiro para mantê-lo limpo!
Jean-François T.
15
  1. Desinstale o módulo docx com pip uninstall docx
  2. Baixe o python_docx-0.8.6-py2.py3-none-any.whlarquivo em http://www.lfd.uci.edu/~gohlke/pythonlibs/
  3. Execute pip install python_docx-0.8.6-py2.py3-none-any.whlpara reinstalar o docx. Isso resolveu o erro de importação acima sem problemas para mim. Apenas para fornecer uma solução ...
Vancent
fonte
9

Quando quiser usar import docx, certifique-se de instalar o python-docx , não docx . Você pode instalar o módulo executando pip install python-docx.

O nome de instalação docx é para um módulo diferente. No entanto,

quando você está indo para importar o módulo python-docx, você precisa executar import docx, não import python-docx.

se ainda quiser usar o módulo docx :

Em primeiro lugar, você precisará certificar-se de que o módulo docx está instalado. Se não, simplesmente corra pip install docx. Se mostrar '* requisito já satisfeito *', a solução é:

  1. Vá para a biblioteca para encontrar o arquivo docx.py , você precisará ir para o diretório onde instalou o python, em seguida, \ Lib \ site-packages \ e encontrar o arquivo docx.py
  2. Abra o arquivo docx.py no editor de texto e encontre este código

    from exceptions import PendingDeprecationWarning
    
  3. Substitua o código acima por
try:
    from exceptions import PendingDeprecationWarning
except ImportError:
    pass
  1. Salve o arquivo
  2. Agora você pode executar o módulo import docx no Python 3.x sem nenhum problema
Sameer Khan
fonte
8

Se estiver usando o python 3.x, certifique-se de ter python-docx e docx instalados.

Instalando o python-docx:

pip install python-docx

Instalando docx:

pip install docx
Kalpit
fonte
6

No módulo de exceções Python 3 foi removido e todas as exceções padrão foram movidas para o módulo integrado. Isso significa que não há mais necessidade de fazer importação explícita de nenhuma exceção padrão.

copiado de

sajid
fonte
3

O problema, conforme observado anteriormente nos comentários, é que o módulo docx não era compatível com Python 3. Foi corrigido nesta solicitação de pull no github: https://github.com/mikemaccana/python-docx/pull/67

Como a exceção agora está embutida, a solução é não importá-la.

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
fonte
Você também poderia postar um snippet de código relacionado aqui?
Kamiccolo
0

Você precisa fazer funcionar com o python3.

                     sudo pip3 install python-docx

Esta instalação funcionou para mim no Python3 sem quaisquer adições adicionais.

             python3
             >> import docx

PS: Observe que 'pip install python-docx' ou apt-get python3-docx não são úteis.

Shagun
fonte
Você realmente não pode dizer que 'pip install python-docx' não é útil, pois faz exatamente o mesmo que o comando pip3 se você estiver em um ambiente python3
The Javatar
-1

Eu tive o mesmo problema, mas pip install python-docxfuncionou para mim, estou usando o python 3.7.1

Brighton Chinhongo
fonte