ホームページ >バックエンド開発 >Python チュートリアル >Python 3.6.1 が「AttributeError: module \'enum\' has no Attribute \'IntFlag\'\」をスローするのはなぜですか?

Python 3.6.1 が「AttributeError: module \'enum\' has no Attribute \'IntFlag\'\」をスローするのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-04 19:18:02288ブラウズ

Why Does Python 3.6.1 Throw an

Python 3.6.1 が AttributeError: Module 'enum' Lacks 'IntFlag' Attribute をトリガーする理由

Python 3.6.1 を実行しようとすると、 「属性エラー: モジュール 'enum' には属性 'IntFlag' がありません。」という不明瞭なエラーが表示される場合があります。この困惑は、「IntFlag」クラスが enum.py モジュールの既知の部分であるという事実にもかかわらず生じます。

この謎を解明するために、問題の根本的な原因、つまり標準ライブラリ間の衝突を詳しく調べます。モジュール enum と enum34 という名前のサードパーティ パッケージ。 enum34 が Python 環境に存在する場合、標準ライブラリの enum モジュールと間違われ、混乱が生じる可能性があります。

この可能性を明らかにするには、「enum.__file__」プロパティを詳しく調べることをお勧めします。標準ライブラリ enum モジュールの場所は、「/usr/local/lib/python3.6/enum.py」のようになります。他の場所を指している場合は、外部モジュールが使用中であることを示します。

競合を解決するには、単に enum34 パッケージをアンインストールします。

pip uninstall -y enum34

コードに Python バージョン間での互換性が必要な場合は、両方のバージョンの互換性が必要です。 3.4 以上および 3.4 より大きい場合は、要件として enum-compat の利用を検討してください。このパッケージにより、標準ライブラリ enum モジュールが欠落している古い Python バージョンに対してのみ enum34 がインストールされるようになります。

以上がPython 3.6.1 が「AttributeError: module \'enum\' has no Attribute \'IntFlag\'\」をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。