ホームページ  >  記事  >  バックエンド開発  >  Python で相対インポートを使用するときに ModuleNotFoundError を修正する方法?

Python で相対インポートを使用するときに ModuleNotFoundError を修正する方法?

DDD
DDDオリジナル
2024-10-29 04:52:29761ブラウズ

 How to Fix ModuleNotFoundError When Using Relative Imports in Python?

Python での相対インポート: ModuleNotFoundError のトラブルシューティング

複数の Python モジュールを操作する場合、ModuleNotFoundError が発生することがよくあります。このエラーは通常、パッケージの一部として実行されていないファイルから相対インポート パスを使用してモジュールをインポートしようとしたときに発生します。

このエラーを理解するには、相対インポートと絶対インポートを区別することが重要です。

  • 絶対インポートでは、現在のモジュールの場所に関係なく、完全なモジュール パスを指定します。
  • 相対インポートでは、モジュールを相対的にインポートできます。パッケージ内の現在のモジュールの位置。

この例では、test.py は相対インポート パス (import config) を使用して config.py をインポートしようとしています。ただし、test.py がパッケージの一部として実行されない場合 (スクリプトとして直接実行される場合など)、main が現在のモジュールとなり、パッケージには含まれません。

したがって、main モジュールからの相対インポートは使用できません。代わりに、絶対インポート (.import config から) を利用する必要があります。ただし、含まれているフォルダー (ryan) を sys.path に追加せずに絶対インポートを使用すると、ModuleNotFoundError が発生します。

この問題を解決するには、次のいずれかを行う必要があります。

  • ディレクトリを変更するsys.path にパッケージ パスが含まれていることを確認して、パッケージ ディレクトリ内からスクリプトを実行します。
  • パッケージを定義するサブディレクトリに __init__.py ファイルを挿入するなど、パッケージ対応のインポート方法を利用します。

これらの手順を実行すると、絶対インポートと相対インポートの両方が期待どおりに機能するはずです。

以上がPython で相対インポートを使用するときに ModuleNotFoundError を修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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