Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Python 3.6.1 Membuang \"AttributeError: Modul \'enum\' Tiada Atribut \'IntFlag\'?\"

Mengapa Python 3.6.1 Membuang \"AttributeError: Modul \'enum\' Tiada Atribut \'IntFlag\'?\"

Linda Hamilton
Linda Hamiltonasal
2024-11-04 14:45:52752semak imbas

Why Does Python 3.6.1 Throw

Mengapa Python 3.6.1 Melemparkan "AttributeError: Modul 'enum' Tiada Atribut 'IntFlag'?"

Selepas memasang Python 3.6.1 untuk macOS X, sebuah percubaan untuk menggunakan konsol atau menjalankan apa-apa sahaja dengan Python3 menghasilkan mesej ralat samar:

AttributeError: module 'enum' has no attribute 'IntFlag'

Analisis Masalah

Tertanya-tanya mengapa ralat ini berlaku, kami memeriksa kod yang dimaksudkan:

<code class="python">class RegexFlag(enum.IntFlag):</code>

Kelas RegexFlag mewarisi daripada enum.IntFlag, iaitu ahli modul enum. Walau bagaimanapun, kami menghadapi ralat kerana Python membuang pengecualian AttributeError, menunjukkan bahawa modul enum tidak mempunyai atribut IntFlag.

Penyelesaian

Menyelidiki isu tersebut, kami mendapati bahawa modul enum yang digunakan mungkin bukan perpustakaan standard. Pakej enum34, yang direka untuk versi Python di bawah 3.5, boleh dipasang bersama enum perpustakaan standard dalam Python 3.6.1.

Mengesahkan ketulenan enum boleh dilakukan dengan memeriksa laluan failnya:

<code class="python">import enum
print(enum.__file__)</code>

Jika enum.__file__ tidak menghala ke lokasi perpustakaan standard (cth., /usr/local/lib/python3.6/enum.py), maka pakej enum34 berkemungkinan menjadi punca isu itu.

Resolusi

Untuk membetulkan keadaan, nyahpasang enum34:

pip uninstall -y enum34

Sebagai alternatif, jika kod perlu dijalankan pada kedua-dua versi Python sebelum 3.5 dan lebih tinggi daripada 3.5, pertimbangkan untuk menggunakan pakej enum-compat. Pakej ini memasang enum34 hanya untuk versi Python lama yang tidak mempunyai modul enum perpustakaan standard.

Atas ialah kandungan terperinci Mengapa Python 3.6.1 Membuang \"AttributeError: Modul \'enum\' Tiada Atribut \'IntFlag\'?\". Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn