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