Docx'i python3.3'te içe aktarırken ImportError hatası alıyorum: 'Exceptions' adlı modül yok


94

içe docxaktardığımda şu hatayı alıyorum:

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

Bu hatayı nasıl düzeltebilirim ( python3.3, docx 0.2.4)?


2
exceptionsModül Python 3'te biri yok (istisnalar var eklenmiştir tanımlanmış __builtin__oldu Neyse). Görünüşe göre DocX'in Python 3'e dönüştürülmesi henüz tamamlanmadı.
Frédéric Hamidi

Yanıtlar:


174

Python 3x kullanıyorsanız, pip install docxbunun yerine şunu yapın:

pip install python-docx 

Python 3.x ile uyumludur

Resmi Belgeler burada bulunabilir: https://pypi.org/project/python-docx/


bu benim sorunumu çözdü, belgedeki resmi bağlantı güncellendi
Roshan Bagdiya

Python 3.7.3 ile benim için çalıştı.
Frank M

2
... ve kaldırmak docxiçin pip uninstall docxönce temiz tutmak için yapabilirsiniz !
Jean-Francois T.

15
  1. Docx modülünü şununla kaldırın: pip uninstall docx
  2. Http://www.lfd.uci.edu/~gohlke/pythonlibs/ adresindenpython_docx-0.8.6-py2.py3-none-any.whl dosyayı indirin
  3. pip install python_docx-0.8.6-py2.py3-none-any.whlDocx'i yeniden yüklemek için çalıştırın . Bu, yukarıdaki ithalat hatasını benim için sorunsuz bir şekilde çözdü. Sadece bir çözüm sağlamak için ...

10

Kullanım istediğinizde import docx, yüklemek için emin olun piton-docx , değil docx .Arzu çalıştırarak modülü yükleyebilirsiniz pip install python-docx.

Docx yükleme adı farklı bir modül içindir Ancak,

python-docx modülünü içe aktaracağınız zaman, çalıştırmanız gerekecek import docx, değil import python-docx.

Hala docx modülünü kullanmak istiyorsanız, o zaman :

Öncelikle docx modülünün kurulu olduğundan emin olmanız gerekir. Değilse, koşun pip install docx. '* Gereksinim zaten karşılandı *' gösteriyorsa çözüm şudur:

  1. Docx.py dosyasını bulmak için kitaplığa gidin, python'u kurduğunuz dizine ve ardından \ Lib \ site-packages \ 'a gitmeniz ve docx.py dosyasını bulmanız gerekir.
  2. Açık docx.py metin editörü dosyası ve bu kodu bulmak

    from exceptions import PendingDeprecationWarning
    
  3. Yukarıdaki kodu şununla değiştirin:
try:
    from exceptions import PendingDeprecationWarning
except ImportError:
    pass
  1. Dosya 'yı kaydet
  2. Artık Python 3.x'te import docx modülünü sorunsuz bir şekilde çalıştırabilirsiniz.

8

Eğer piton 3.x kullanıyorsanız, hem sizin olduğundan emin olun piton-docx & docx yüklü.

Python-docx kurulumu:

pip install python-docx

Docx yükleniyor:

pip install docx

6

Python 3'te istisna modülü kaldırıldı ve tüm standart istisnalar yerleşik modüle taşındı. Bu nedenle, herhangi bir standart istisnayı açıkça içe aktarmaya artık gerek olmadığı anlamına gelir.

kopyalandı



3

Daha önce yorumlarda belirtildiği gibi sorun, docx modülünün Python 3 ile uyumlu olmamasıdır. Github'daki bu çekme isteğinde düzeltildi: https://github.com/mikemaccana/python-docx/pull/67

İstisna artık yerleşik olduğundan, çözüm onu ​​içe aktarmamaktır.

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

Lütfen ilgili kod parçasını buraya da gönderebilir misiniz?
Kamiccolo

0

Python3 ile çalışmasını sağlamalısınız.

                     sudo pip3 install python-docx

Bu kurulum benim için Python3'te başka ekleme yapılmadan çalıştı.

             python3
             >> import docx

Not: 'pip install python-docx' veya apt-get python3-docx'in kullanışlı olmadığını unutmayın.


Bir python3 ortamındaysanız, pip3 komutuyla tamamen aynı olduğu için 'pip install python-docx'in yararlı olmadığını gerçekten söyleyemezsiniz
The Javatar

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.