Ketika mengimpor docx di python3.3 Saya mengalami kesalahan ImportError: Tidak ada modul bernama 'pengecualian'


94

ketika saya mengimpor docxsaya mengalami kesalahan ini:

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

Bagaimana cara memperbaiki kesalahan ini ( python3.3, docx 0.2.4)?


2
The exceptionsmodul tidak ada di Python 3 (pengecualian didefinisikan ada yang ditambahkan ke __builtin__anyway). Sepertinya konversi DocX ke Python 3 belum selesai.
Frédéric Hamidi

Jawaban:


174

Jika Anda menggunakan python 3x, jangan lakukan pip install docxsebagai gantinya

pip install python-docx 

Ini kompatibel dengan python 3.x

Dokumentasi Resmi tersedia di sini: https://pypi.org/project/python-docx/


ini memecahkan masalah saya, memperbarui tautan resmi dalam dokumen
Roshan Bagdiya

Bekerja untuk saya, dengan Python 3.7.3.
Frank M

2
... dan untuk melepasnya docx, Anda bisa lakukan pip uninstall docxdulu dengan menjaganya tetap bersih!
Jean-Francois T.

15
  1. Copot modul docx dengan pip uninstall docx
  2. Unduh python_docx-0.8.6-py2.py3-none-any.whlfile dari http://www.lfd.uci.edu/~gohlke/pythonlibs/
  3. Jalankan pip install python_docx-0.8.6-py2.py3-none-any.whluntuk menginstal ulang docx. Ini menyelesaikan kesalahan impor di atas dengan lancar bagi saya. Sekedar memberikan solusi ...

10

Saat ingin menggunakan import docx, pastikan untuk menginstal python-docx , bukan docx . Anda dapat menginstal modul dengan menjalankan pip install python-docx.

Nama instalasi docx untuk modul yang berbeda. Namun,

ketika Anda akan mengimpor modul python-docx, Anda harus menjalankan import docx, bukan import python-docx.

jika masih ingin menggunakan modul docx maka :

Pertama-tama, Anda perlu memastikan bahwa modul docx telah diinstal. Jika tidak maka jalankan saja pip install docx. Jika muncul '* persyaratan sudah terpenuhi *' maka solusinya adalah:

  1. Pergi ke perpustakaan untuk menemukan file docx.py , Anda harus pergi ke direktori tempat Anda menginstal python lalu \ Lib \ site-packages \ dan temukan file docx.py
  2. Buka file docx.py di editor teks dan temukan kode ini

    from exceptions import PendingDeprecationWarning
    
  3. Ganti kode di atas dengan
try:
    from exceptions import PendingDeprecationWarning
except ImportError:
    pass
  1. Simpan file
  2. Sekarang Anda dapat menjalankan modul import docx dengan Python 3.x tanpa masalah

8

Jika Anda menggunakan python 3.x, Pastikan Anda telah menginstal python-docx & docx .

Menginstal python-docx:

pip install python-docx

Menginstal docx:

pip install docx

6

Dalam modul pengecualian Python 3 telah dihapus dan semua pengecualian standar dipindahkan ke modul builtin. Dengan demikian berarti tidak perlu lagi melakukan impor eksplisit dari pengecualian standar apa pun.

disalin dari



3

Masalahnya, seperti disebutkan sebelumnya di komentar, adalah modul docx tidak kompatibel dengan Python 3. Telah diperbaiki dalam permintaan tarik ini di github: https://github.com/mikemaccana/python-docx/pull/67

Karena pengecualian sekarang sudah ada di dalamnya, solusinya adalah tidak mengimpornya.

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

Bisakah Anda juga memposting potongan kode terkait di sini?
Kamiccolo

0

Anda harus membuatnya berfungsi dengan python3.

                     sudo pip3 install python-docx

Instalasi ini berfungsi untuk saya di Python3 tanpa tambahan lebih lanjut.

             python3
             >> import docx

PS: Perhatikan bahwa 'pip install python-docx' atau apt-get python3-docx tidak berguna.


Anda tidak dapat benar-benar mengatakan 'pip install python-docx' tidak berguna, karena fungsinya persis sama dengan perintah pip3 jika Anda berada di lingkungan python3
The Javatar

-1

Saya memiliki masalah yang sama, tetapi pip install python-docxberhasil untuk saya, saya menggunakan python 3.7.1

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.