環境
- Ubuntu 19.10
- Python 3.7.3
生じている問題
現在、作業をしているディレクトリは下のような構造をしています。
. ├── UNet │ ├── README.md │ ├── __pycache__ │ ├── model.py │ ├── params │ ├── prediction.py │ ├── prepare_data.py │ └── train.py # メインの関数が定義されている。 model.py, prepare_data.py をインポートしている └── tests ├── __pycache__ └── test_train.py # train.py のテストコード
train.py がメインのコードでこれを
python
1python ./UNet/train.py
のように実行することを想定しています。train.py の中では model.py や prepare_data.py をインポートして使うのですが、どのようにしてこれをインポートすればよいのかわかりません。
試したこと
方法1
UNet/train.py
python
1from UNet import model 2from UNet.prepare_data import data_gen
tests/test_train.py
from UNet import train
とインポートすると、pytest tests/test_train.py
や python UNet/train.py
を実行したときに
ModuleNotFoundError: No module named 'UNet'
となります。python -m pytest tests/test_train.py
はエラーなく通ります。
方法2
UNet/train.py
python
1import model 2from prepare_data import data_gen
とすると python UNet/train.py
は通りますが、 pytest tests/test_train.py
は
ModuleNotFoundError: No module named 'UNet'
となって、test_train.py のなかで from UNet import train
を呼んでいる部分でエラーが出ます。python -m pytest tests/test_train.py
は
ModuleNotFoundError: No module named 'model'
となります。
ディレクトリ配置に問題があるでしょうか?それもとインポート方法がおかしいのでしょうか?よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー