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

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

Linda Hamilton
Linda Hamilton원래의
2024-11-04 14:45:52754검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.