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

pengguna3472559
sumber
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/

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

sajid
sumber
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
Dmitry
sumber
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.

Shagun
sumber
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

Brighton Chinhongo
sumber