私はパッケージを理解するのに苦労しています。具体的には、unittestをパッケージとともに使用する方法です。私はこの質問を見ましたが、その質問への正解は私の問題を解決しませんでした。以下のファイル/輸入でPython unittestインポートの問題
model
|-- __init__.py
|-- boardmodel.py
|
|-- exceptions
| |
| |-- __init__.py
| |-- exceptions.py
|
|-- test
|-- __init__.py
|-- test_boardmodel.py
:
モデル/ __ init__.py:
import model.exceptions.exceptions
import model.boardmodel
モデル/例外/ __ init__.py:私は、次のような構造を持っている
には何も含まれていません。
モデル/テスト/ __ init__.py::::test_boardmodel.py内部
from model.exceptions.exceptions import ZeroError, OverlapError, ArgumentError, ProximityError
輸入
がboardmodel.py内部に何も
輸入が含まれています
import unittest
from model.boardmodel import Board, Ball, Wall
from model.exceptions.exceptions import ProximityError
自分自身をモデルディレクトリに置き、python -m unittest test.test_boardmodel.py
を実行します。私は、次のメッセージが表示されます:
ERROR: test_boardmodel (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: test_boardmodel
Traceback (most recent call last):
File "/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/loader.py", line 153, in loadTestsFromName
module = __import__(module_name)
File "/Users/sahandzarrinkoub/Documents/Programming/pythonfun/BouncingBalls/balls/src/model/test/test_boardmodel.py", line 3, in <module>
from model.boardmodel import Board, Ball, Wall
ModuleNotFoundError: No module named 'model'
私は少し輸入がどのように動作するかを失ったし、どのような場所インポート文が実行されたときのモジュール/パッケージが探しているんです。 model
が見つかりませんでしたか?
私が記載されているすべての輸入品からmodel.
を削除する場合は、テストが動作することを追加しなければならないが、私はもう「外」からのパッケージを使用することはできません。
src
|-- visual.py
|
|-- model
|-- __init__.py
|-- boardmodel.py
|
|-- exceptions
| |
| |-- __init__.py
| |-- exceptions.py
|
|-- test
|-- __init__.py
|-- test_boardmodel.py
内部visual.py:
import model
from model.boardmodel import Board