1. ホーム
  2. パイソン

[解決済み】pytestのPATH問題 'ImportError: YadaYadaYadaという名前のモジュールがない'

2022-03-29 17:25:23

質問

easy_installを使ってmacにpytestをインストールし、このようなファイル構造を持つプロジェクトのためのテストを書き始めました。

repo/
   |--app.py
   |--settings.py
   |--models.py
   |--tests/
          |--test_app.py

実行 py.test レポディレクトリにいる間、すべてが期待通りに動作します。

しかし、LinuxやWindows(どちらもpytest 2.2.3が入っています)で同じことをすると、私のアプリケーションパスから何かを最初にインポートするたびに吠えるのです。例えば、次のようにします。 from app import some_def_in_app

これらのシステムでpy.testを実行するためにPATHを編集する必要があるのでしょうか?誰かこれを経験したことがありますか?

解決方法は?

はい、Pythonのパスにソースフォルダがない場合です。 cd をtestsディレクトリに移動してください。

2つの選択肢があります。

  1. テストファイルに手動でパスを追加する、こんな感じです。

    import sys, os
    myPath = os.path.dirname(os.path.abspath(__file__))
    sys.path.insert(0, myPath + '/../')
    
    
  2. env var でテストを実行します。 PYTHONPATH=../ .