質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

4341閲覧

PytestでModuleNotFoundErrorになる

Yhaya

総合スコア439

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/08/19 05:19

環境

  • Ubuntu 18.04
  • Python 3.7.3

問題

UNet ├── README.md ├── __pycache__ │   ├── main.cpython-36.pyc │   ├── model.cpython-36.pyc │   ├── model.cpython-37.pyc │   ├── prepare_data.cpython-36.pyc │   └── prepare_data.cpython-37.pyc ├── dataset │   ├── raw_images │   ├── segmented_images │   └── validation ├── model.py ├── params │   ├── checkpoint │   ├── model.h5 │   ├── model_1epochs.ckpt.data-00000-of-00001 │   ├── model_1epochs.ckpt.index │   └── model_1epochs.ckpt.meta ├── prediction.py ├── prepare_data.py ├── tests │   ├── __pycache__ │   ├── test_main.py │   ├── test_model.py │   └── test_prepare_data.py └── train.py

このようなディレクトリ構造で作業をしていて、UNetディレクトリの1つ上からpytestを実行しようとしています。実行しようとしているのはUNet/tests/test_prepare_data.pyで、この中では

python

1from UNet.prepare_data import data_gen

という形でimportをしています。

bash

1pytest UNet/tests/test_prepare_data.py

を実行するとUNet モジュールがないと言われるのですが、どのようにしたらこれは解決できますか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

python -m pytest UNet/tests/test_prepare_data.py

としてください。

https://docs.pytest.org/en/latest/usage.html#calling-pytest-through-python-m-pytest

This is almost equivalent to invoking the command line script pytest [...] directly, except that calling via python will also add the current directory to sys.path.

pytestpython -m pytestはほぼ同じだが、pythonコマンドから実行した場合はsys.pathにカレントディレクトリを追加することが違う。
とあります。

逆にいうとpytestコマンドはカレントディレクトリをsys.pathに追加しないということです。
そのためpytestコマンドで実行するとUNetパッケージが見つからずに失敗します。

投稿2019/08/19 05:53

quickquip

総合スコア11055

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yhaya

2019/08/19 06:19

ありがとうございます!解決しました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問