Python エラー: ImportError: 名前 'xxx' をインポートできません。解決方法は?

PHPz
リリース: 2023-08-18 23:12:39
オリジナル
16390 人が閲覧しました

Python报错:ImportError: cannot import name \'xxx\',该如何解决?

Python エラー: ImportError: 名前 'xxx' をインポートできません。解決方法は?

Python を使用したプログラミングのプロセスでは、エラーが発生することが非常によくあります。一般的なエラーの 1 つは、「ImportError: 名前 'xxx' をインポートできません」です。つまり、特定の名前 ('xxx') をインポートできません。

このエラーは通常、2 つの異なる状況で発生します。

  1. 循環参照の問題:

循環参照とは、2 つのモジュールが相互にインポートすることを意味します。たとえば、2 つのモジュール A と B があるとします。A は B をインポートし、B も A をインポートします。この状況では、ImportError が発生します。この問題を解決するには、インポートの位置を調整することで循環参照を回避できます。

以下は、循環参照を引き起こすサンプル コードです:

# module_a.py
import module_b

def foo():
    print("hello from module_a")

# module_b.py
import module_a

def bar():
    module_a.foo()
ログイン後にコピー

循環参照の問題を解決するには、使用する必要がある関数内にインポートを配置します。変更されたコードは次のとおりです。

# module_a.py

def foo():
    import module_b
    print("hello from module_a")

# module_b.py

def bar():
    import module_a
    module_a.foo()
ログイン後にコピー
  1. インポート名が存在しません:

インポート名が存在しないというエラーは、モジュールをインポートするときに、 is no 対応する名前を定義します。これは、名前のスペルが間違っているか、モジュールが存在しないか、または対応する変数または関数がモジュールで定義されていないことが考えられます。

この問題を解決するには、必要なモジュールが正しくインポートされていること、および必要な名前がモジュール内に存在することを確認する必要があります。

以下は、インポート名が存在しないというエラーが発生するサンプル コードです:

# module_a.py

def foo():
    print("hello from module_a")

# main.py
import module_a

module_a.bar()
ログイン後にコピー

この例では、module_a で 'bar' という名前の関数を呼び出そうとしていますが、実際には module_a です。この関数は定義されていません。

この問題を解決するには、「bar」関数を使用する必要がある正しいモジュールをインポートし、この関数がモジュール内に存在することを確認する必要があります。

以下は変更されたコードです:

# module_a.py

def foo():
    print("hello from module_a")

def bar():
    print("hello from bar")

# main.py
import module_a

module_a.bar()
ログイン後にコピー

変更されたコードでは、module_a に 'bar' 関数を定義し、module_a モジュールを main.py にインポートしました。これで、「bar」関数を正常に呼び出すことができます。

概要:

「インポートエラー: 名前 'xxx' をインポートできません」というエラーが発生した場合は、まず循環参照に問題があるかどうかを判断する必要があります。循環参照に問題がある場合は、インポート位置を調整します。循環参照を解決します。さらに、インポートされたモジュールが存在し、そのモジュールに必要な名前が含まれていることを確認してください。インポート場所を確認して調整し、呼び出される変数または関数に正しく名前を付けることで、このエラーを解決し、必要なモジュールと名前を正常にインポートできます。

以上がPython エラー: ImportError: 名前 'xxx' をインポートできません。解決方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!