ホームページ >バックエンド開発 >Python チュートリアル >\'ModuleNotFoundError: x という名前のモジュールがありません\': Python 3 で相対インポートが失敗するのはなぜですか?

\'ModuleNotFoundError: x という名前のモジュールがありません\': Python 3 で相対インポートが失敗するのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-29 04:26:02427ブラウズ

相対インポートと「ModuleNotFoundError: No modulenamed x」

Python 3 では、パッケージ内のモジュールをインポートするために相対インポートが使用されます。ただし、相対インポートを実行しようとしたときに「ModuleNotFoundError: No modulenamed x」というエラーが発生した場合は、パッケージの構造またはモジュールのインポート方法に問題があることを示しています。

Python 3 の相対インポート

相対インポートを使用すると、現在のモジュールと同じパッケージの一部であるモジュールをインポートできます。これを行うには、インポート ステートメントの先頭にドット (.) を追加して、現在のディレクトリからインポートしていることを示します。例:

<code class="python">from . import config</code>

ModuleNotFoundError 例外

「ModuleNotFoundError」例外は、インポートしようとしているモジュールを Python が見つけられない場合に発生します。これは、次のようなさまざまな理由で発生する可能性があります。

  • モジュールが存在しません: インポートしようとしているモジュールは、指定されたパスに存在しません。
  • モジュール パスが正しくありません: インポート ステートメントで指定されたインポート パスが正しくありません。
  • ファイルは Python モジュールではありません: インポートしようとしているファイルは、Python モジュールではありません有効な Python モジュール (例: 適切な Python コードが含まれていません)。

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

「x という名前のモジュールがありません」を解決するには" 相対インポート試行時のエラー:

  1. モジュールの存在の確認: インポートしようとしているモジュールが現在のモジュールと同じディレクトリに存在することを確認してください。
  2. インポート パスを確認してください: 相対インポート パスが正しいことを確認してください。パッケージの構造とインポートするモジュールの場所を再確認してください。
  3. 絶対インポートを使用します: 相対インポートで問題を解決できない場合は、絶対インポートの使用を検討してください。 imports は、インポートするモジュールへのフルパスを指定します。例:
<code class="python">import <package_name>.config</code>

main モジュールによる相対インポート

からの相対インポートは許可されていないことに注意してください。 main モジュール。Python スクリプトが直接実行されるときに実行されます。この場合、絶対インポートを使用してパッケージ内のモジュールを参照する必要があります。

以上が\'ModuleNotFoundError: x という名前のモジュールがありません\': Python 3 で相対インポートが失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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