ホームページ >バックエンド開発 >Python チュートリアル >Pytest の「ImportError: No Module Named...」問題を修正する方法?

Pytest の「ImportError: No Module Named...」問題を修正する方法?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-07 01:26:131032ブラウズ

How to Fix Pytest's

Pytest でのパスの失敗: 'ImportError: No Module Named...'

Pytest を使用すると、厄介なエラー 'ImportError: が発生します。 「...という名前のモジュールがありません」というメッセージが表示される場合、この問題は通常、Python のモジュール インポート動作に起因します。 Pytest はディレクトリを走査してモジュールを見つけますが、モジュールの親ディレクトリの外で実行するとモジュールが見つからないことがあります。

最近の Pytest バージョンで推奨されるアプローチ (>= 7)

Pytest の最新バージョンでは、「pythonpath」構成オプションを介してより簡単なソリューションが提供されます。 「pyproject.toml」または「pytest.ini」ファイルで「pythonpath」を定義すると、必要なモジュール ディレクトリを Python の検索パスに追加できます。

Conftest Solution for Pytest < 7

Pytest の古いバージョンの場合、侵襲性の低いアプローチとして、プロジェクトのルート ディレクトリに空の 'conftest.py' ファイルを作成します。 Pytest は、テスト収集中にこのディレクトリを Python の検索パスに自動的に追加します。

特定のプロジェクト構造に関するヒント

  • ' を含む親ディレクトリのないパッケージ レイアウトの場合__init__.py' ファイルを作成し、conftest.py をパッケージのルート ディレクトリに配置します。
  • を利用するプロジェクトの場合「src」レイアウトの場合は、conftest.py を「src」ディレクトリに配置します。ただし、「src」レイアウトの利点が損なわれる可能性があるため注意してください。

結論

「pythonpath」のいずれかを使用して Python の検索パスを変更します。構成または「conftest.py」ファイルを使用すると、「ImportError: No module names...」問題を解決し、さまざまな環境でスムーズにテストできるようになります。環境

以上がPytest の「ImportError: No Module Named...」問題を修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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