Saya baru saja menginstal Python 3.6.1 untuk MacOS X
Ketika saya mencoba menjalankan Konsol (atau menjalankan apa pun dengan Python3), kesalahan ini muncul:
AttributeError: module 'enum' has no attribute 'IntFlag'
$ /Library/Frameworks/Python.framework/Versions/3.6/bin/python3
Failed to import the site module
Traceback (most recent call last):
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 544, in <module>
main()
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 530, in main
known_paths = addusersitepackages(known_paths)
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 282, in addusersitepackages
user_site = getusersitepackages()
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 258, in getusersitepackages
user_base = getuserbase() # this will also set USER_BASE
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 248, in getuserbase
USER_BASE = get_config_var('userbase')
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/sysconfig.py", line 601, in get_config_var
return get_config_vars().get(name)
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/sysconfig.py", line 580, in get_config_vars
import _osx_support
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/_osx_support.py", line 4, in <module>
import re
File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/re.py", line 142, in <module>
class RegexFlag(enum.IntFlag):
AttributeError: module 'enum' has no attribute 'IntFlag'
Kelas IntFlag ada di dalam enum.py. Jadi, mengapa AttributeError dilemparkan?
python
python-3.x
enums
python-3.6
attributeerror
BryanWheelock
sumber
sumber
enum.py
di direktori kerja Anda?enum.py
di direktori kerja-I
opsi untuk mengabaikan paket situs dan variabel lingkungan dan / atau dengan-v
untuk melihat pesan verbose tentang imporJawaban:
Itu karena Anda
enum
bukanenum
modul perpustakaan standar . Anda mungkin telahenum34
menginstal paket tersebut .Salah satu cara untuk memeriksa apakah ini masalahnya adalah dengan memeriksa properti
enum.__file__
Sejak python 3.6 pustaka enum34 tidak lagi kompatibel dengan pustaka standar. Pustaka juga tidak diperlukan, jadi Anda cukup menghapus instalannya.
Jika Anda memerlukan kode untuk dijalankan pada versi python <= 3.4 dan> 3.4, Anda dapat mencoba memiliki
enum-compat
sebagai persyaratan. Itu hanya menginstalenum34
untuk versi python tanpa perpustakaan standar enum.sumber
ipython2 --> traitlets --> enum34
. (Sayangnya,enum34
dipasang di.../2.7/site-packages/enum
tidak.../2.7/site-packages/enum34
- meminta masalah.)Skipping enum34 as it is not installed
.. Saya menggunakan 3,7print(enum.__file__)
memberi saya ini:/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/enum.py
. Apakah itu berarti saya memilikienum
perpustakaan standar dan tidakenum34
? Edit: ya,pip uninstall enum34
berikan sayaSkipping enum34 as it is not installed.
jupyter notebook
jalan.Tidak yakin apakah Anda masih mengalami masalah ini. Saya memiliki masalah serupa dan saya dapat mengatasinya hanya dengan membatalkan pengaturan
PYTHONPATH
$ unset PYTHONPATH
sumber
Settings->Build, Execution, Deployment->Console->Python Console
. Saya kemudian menghapus variabel PYTHONPATH dari bidang berjudulEnvironment variables
. Catatan: pada saat penulisan ini, saya menggunakan PyCharm 2017.1.2.Bagi saya kesalahan ini terjadi setelah menginstal komponen gcloud app-engine-python untuk diintegrasikan ke dalam pycharm. Menghapus instalasi modul membantu, bahkan jika pycharm sekarang tidak mengunggah ke mesin aplikasi.
sumber
Jika ada yang datang ke sini karena mendapatkan kesalahan ini saat menjalankan proyek lingkungan standar Google app engine Python 3.7 di PyCharm maka yang perlu Anda lakukan hanyalah
Alasannya sesuai tautan ini
Saya kira ketika kita membuat proyek python 3.7 di PyCharm sebagai proyek mesin aplikasi Google, ia masih mencoba melakukan cara yang sama untuk aplikasi python2.7
sumber
gcloud app deploy
. Itu tidak ada hubungannya dengan pycharm.DISCLAIMER: Tolong, @ juanpa.arrivillaga, jika Anda melihat jawaban ini, silakan tulis sendiri dan saya akan menghapus posting ini.
@ juanpa.arrivillaga telah menyebutkan di atas :
Ini adalah masalah yang saya temui. Saya tidak mengetahui modul enum pada python pada saat itu dan telah menamai file pengujian saya
enum.py
.Karena nama file adalah nama modul, terjadi konflik. Info lebih lanjut tentang modul di sini: https://docs.python.org/2/tutorial/modules.html
sumber
Menonaktifkan "Dukungan Google App Engine" di preferensi pycharm memperbaiki masalah ini untuk saya.
sumber
Jawaban Håken Lid membantu memecahkan masalah saya (terima kasih!), Dalam kasus saya hadir dengan Python3.7 menjalankan Flask dalam wadah Docker (
FROM tiangolo/uwsgi-nginx-flask:python3.7-alpine3.7
).Dalam kasus saya,
enum34
sedang diinstal oleh perpustakaan lain (pip install smartsheet-python-sdk
). Bagi mereka yang datang dengan masalah kontainer Docker yang serupa, inilah Dockerfile terakhir saya (dilucuti ke baris yang relevan):sumber
Jika Anda harus menyimpan PYTHONPATH untuk python2 dan python3, Anda dapat menulis pernyataan alias untuk menyetel PYTHONPATH yang tepat di bash_profile Anda:
Buat kode keras variabel PYTHONPATH2, dan PYTHONPATH3 di ~ / .bash_profile Anda, dan tambahkan alias berikut di akhir:
Saya
python
(mengacu pada python2) karena saya lebih sering menggunakan python2.sumber
Kapan pun saya mendapat masalah ini:
cukup pertama saya jalankan perintah:
dan kemudian jalankan perintah yang saya inginkan lalu dapatkan sukses dalam hal itu.
sumber
Menginstal versi 1.1.8 dari enum34 berhasil untuk saya.
Sumber: https://github.com/python-poetry/poetry/issues/1122
sumber
pyinstaller
.Saya melakukannya dengan menggunakan
pip install <required-library> --ignore-installed enum34
Setelah perpustakaan yang Anda butuhkan diinstal, cari peringatan selama pembuatan. Saya mendapat Kesalahan seperti ini:
Using legacy setup.py install for future, since package 'wheel' is not installed
ERROR: pyejabberd 0.2.11 has requirement enum34==1.1.2, but you'll have enum34 1.1.10 which is incompatible.
Untuk memperbaiki masalah ini sekarang menjalankan perintah:
pip freeze | grep enum34
. Ini akan memberi Anda versi dari enum34 yang diinstal. Sekarang hapus instalannyapip uninstall enum34
dan instal ulang versi yang diperlukan sebagaipip install "enum34==1.1.20"
sumber
Saya memiliki Python 2 dan Python 3 yang diinstal di komputer saya. Untuk beberapa alasan aneh yang saya miliki di sys.path Python 3 juga jalur ke direktori pustaka sitepackage Python2 ketika modul ulang dipanggil. Jika saya menjalankan Python 3 dan mengimpor enum dan
print(enum.__file__)
sistem tidak menunjukkan jalur Python 2 ini ke paket situs. Jadi peretasan yang sangat kasar dan kotor adalah, untuk langsung memodifikasi modul di mana enum diimpor (ikuti jalur traceback) dan masukkan kode berikut tepat sebelum mengimpor enum:Itu memecahkan masalah saya.
sumber
Bahkan saya mengalami masalah ini saat menjalankan python -m grpc_tools.protoc --version Harus mengatur PYTHONPATH hingga paket situs dan mematikan semua jendela prompt perintah dan berhasil. Semoga membantu bagi pengguna gRPC.
sumber
Saya mengalami masalah ini di ubuntu20.04 di jupyterlab di kernel env virtual saya dengan python3.8 dan tensorflow 2.2.0. Pesan kesalahan adalah
Masalahnya adalah bahwa dalam tautan simbolik di / usr / bin / python menunjuk ke python2. Larutan:
Saya berharap python2 akan segera mati! Terveisin, Markus
sumber
Jika Anda mengalami masalah ini ketika menjalankan tes di
PyCharm
, pastikan kotak kedua adalah dicentang di konfigurasi.sumber
Jika ada yang mengalami masalah ini saat mencoba menjalankan kernel Jupyter dari virtualenv, cukup tambahkan yang benar
PYTHONPATH
kekernel.json
kernel virtualenv Anda (misalnya Python 3):sumber