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

Linda Hamilton
Lepaskan: 2024-11-04 14:45:52
asal
751 orang telah melayarinya

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'
Salin selepas log masuk

Analisis Masalah

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

<code class="python">class RegexFlag(enum.IntFlag):</code>
Salin selepas log masuk

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>
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!