ホームページ  >  記事  >  バックエンド開発  >  Python で「Bad Magic Number」インポートエラーが発生するのはなぜですか? それを修正するにはどうすればよいですか?

Python で「Bad Magic Number」インポートエラーが発生するのはなぜですか? それを修正するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-31 05:51:30894ブラウズ

Why Do I Get a

「Bad Magic Number」ImportError について

インポートされた pyc ファイルに不正なファイルが含まれている場合、Python で「Bad Magic Number」ImportError が発生しますマジック ナンバー。UNIX 系システムのファイル タイプを示すマーカーです。

このエラーは、次のような理由で発生する可能性があります。

  • 間違った Python バージョンからのコンパイル: インポートに使用したものとは異なる Python バージョンを使用して、.py ファイルを .pyc ファイルにコンパイルします。
  • ファイル操作: pyc ファイルを編集または破損します。
  • ライブラリが見つからないか、互換性がありません: 必要なライブラリがないか、現在の Python バージョンと互換性がない pyc ファイルをインポートしています。

この問題を解決するには、次の手順に従ってください。手順:

  1. Pyc ファイルの削除: インポートされたモジュールに関連付けられているすべての .pyc ファイルを削除します。これにより、インタープリタはインポート時に .py ファイルを強制的に再コンパイルします。 UNIX ターミナルでは次のコマンドを使用できます:

    rm *.pyc
    find . -name '*.pyc' -delete
  2. ライブラリの依存関係の確認: インポートしているモジュールに必要なライブラリがすべて揃っていることを確認します。インストールされており、Python バージョンと互換性があります。
  3. フル スタック トレースの検査: 問題が断続的に続く場合は、インポート エラー中にフル スタック トレースを注意深く調べてください。これにより、特定の原因に関する洞察が得られる可能性があります。
  4. マジック ナンバー値: さまざまな Python バージョンに関連付けられたマジック ナンバーについては、次の表を参照してください:

    Python Version Magic Number
    1.5, 1.5.1, 1.5.2 20121
    1.6 50428
    2.0, 2.0.1 50823
    2.1, 2.1.1, 2.1.2 60202
    2.2 60717
    2.3a0 (various builds) 62011, 62021, 62041
    2.4a0 62051
    2.4a3 62061
    2.5a0 (various builds) 62071, 62081, 62091, 62092
    2.5b3 (various builds) 62101, 62111
    2.5c1 62121
    2.5c2 62131
    2.6a0 62151
    2.6a1 62161
    2.7a0 62171

不正なマジック ナンバー エラーとその原因を理解すると、この問題が発生した場合に効果的に解決するのに役立ちます。

以上がPython で「Bad Magic Number」インポートエラーが発生するのはなぜですか? それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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