> 백엔드 개발 > 파이썬 튜토리얼 > Python 3.6.1에서 \'AttributeError: 모듈 \'enum\'에 \'IntFlag\' 속성이 없습니다.\'가 발생하는 이유는 무엇입니까?

Python 3.6.1에서 \'AttributeError: 모듈 \'enum\'에 \'IntFlag\' 속성이 없습니다.\'가 발생하는 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-04 14:45:52
원래의
831명이 탐색했습니다.

Why Does Python 3.6.1 Throw

Python 3.6.1에서 "AttributeError: 'enum' 모듈에 'IntFlag' 속성이 없습니다."가 발생하는 이유

macOS X용 Python 3.6.1을 설치한 후 콘솔을 사용하거나 Python3으로 무엇이든 실행하려고 하면 알 수 없는 오류 메시지가 나타납니다.

AttributeError: module 'enum' has no attribute 'IntFlag'
로그인 후 복사

문제 분석

이 오류가 발생하는 이유가 궁금합니다. 문제의 코드:

<code class="python">class RegexFlag(enum.IntFlag):</code>
로그인 후 복사

RegexFlag 클래스는 enum 모듈의 멤버인 enum.IntFlag에서 상속됩니다. 그러나 Python에서 모듈 열거형에 IntFlag 속성이 부족함을 나타내는 AttributeError 예외가 발생하기 때문에 오류가 발생합니다.

해결책

이 문제를 조사한 결과 다음을 발견했습니다. 사용 중인 열거형 모듈은 표준 라이브러리의 모듈이 아닐 수 있습니다. 3.5 이하의 Python 버전용으로 설계된 enum34 패키지는 Python 3.6.1에서 표준 라이브러리의 enum과 함께 설치할 수 있습니다.

enum의 신뢰성은 파일 경로를 검사하여 확인할 수 있습니다.

<code class="python">import enum
print(enum.__file__)</code>
로그인 후 복사

enum.__file__이 표준 라이브러리 위치(예: /usr/local/lib/python3.6/enum.py)를 가리키지 않는 경우 enum34 패키지가 문제의 원인일 가능성이 높습니다.

해결 방법

상황을 해결하려면 enum34를 제거하세요.

pip uninstall -y enum34
로그인 후 복사

또는 3.5 이전의 두 Python 버전 모두에서 코드를 실행해야 하는 경우 3.5 이상인 경우 enum-compat 패키지 사용을 고려하세요. 이 패키지는 표준 라이브러리의 enum 모듈이 없는 이전 Python 버전에 대해서만 enum34를 설치합니다.

위 내용은 Python 3.6.1에서 \'AttributeError: 모듈 \'enum\'에 \'IntFlag\' 속성이 없습니다.\'가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿