2017-06-25 7 views
0

I持っている(のpython3を使用して)、次のプロジェクトファイル:のpython3 - Pytestのディレクトリ構造と輸入

pyproj 
├── __init__.py 
├── main.py 
├── module1.py 
├── module2.py 
└── tests 
    ├── __init__.py 
    └── test_module.py 

Module1のは何の輸入が含まれていません。モジュール1から

モジュール2インポート次のようにモジュール1とモジュール2から

import module1 

main.py輸入次のよう

from module1 import * 
from module2 import * 

Iがモジュール2からインポートすることができるようにテスト/ test_moduleを希望しますモジュール1から、ディレクトリのpytestを使用して実行することができます。

tests/test_module.py:1: in <module> from ..module2 import * module2.py:1: in <module> import module1 E ImportError: No module named 'module1'

問題は、モジュール1は、モジュール2をインポートするときのようだ:pyprojディレクトリのいずれかからpytestまたはtestsディレクトリを実行しているとき

from ..module2 import * 

は、次のエラーが発生します。しかし、使用してモジュール2をインポートしよう。しかし、python3 main.pyは正しく動作します。

私は多くの変更を試みましたが、どちらもmain.pyとテストが正しく機能するようには思えません。これを行うためにプロジェクトを構造化し、適切にファイルをインポートする正しい方法は何ですか?

答えて

0

テストでは絶対インポート:from module2 import *を使用し、テストを実行する前にPYTHONPATHをpyprojに設定してください。または、pyprojがインストールされた仮想envでテストを実行します。または、あなたのためにそのようなvenvsを作成する毒素を使用してください。

関連する問題