"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Python 3.6.1에서 \"AttributeError: 모듈 \'enum\'에 \'IntFlag\' 속성이 없습니다.\"가 발생하는 이유는 무엇입니까?

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

2024년 11월 10일에 게시됨
검색:941

Why Does Python 3.6.1 Throw \

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

macOS X용 Python 3.6.1을 설치한 후 콘솔을 사용하거나 Python3으로 무엇이든 실행하려고 하면 다음과 같은 암호 오류 메시지가 나타납니다.

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

문제 분석

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

class RegexFlag(enum.IntFlag):

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

Solution

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

enum의 진위 여부는 해당 파일 경로를 검사하여 확인할 수 있습니다:

import enum
print(enum.__file__)

enum.__file__이 표준 라이브러리 위치(예: /usr/local/lib/python3.6/enum.py)를 가리키지 않으면 enum34 패키지는 문제의 원인.

해결 방법

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

pip uninstall -y enum34

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

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3