Получение различных ошибок ModuleNotFound для запуска тестов и запуска программы из командной строки - PullRequest
0 голосов
/ 05 февраля 2020

Я создал проект с точным деревом ниже.

/ project
   / logic
     - app.py
     - utils.py
     - exceptions.py
   / tests
     - tests.py
   - README
   - requirements.txt

Код предназначен для запуска из командной строки. app.py содержит main logi c.

В app.py, я импортирую утилиты так: from utils import validate_args

Так что, когда я запускаю python app.py , все работает, как и ожидалось.

НО, когда я запускаю nosetests, он сразу завершается неудачно, ссылаясь на импорт utils в app.py в качестве причины:

File ".../project/app.py", line 4, in <module>
  ModuleNotFoundError: No module named 'utils'

Это может исправить ошибку, изменив импорт на .utils, но команда командной строки завершится неудачно:

ModuleNotFoundError: No module named '__main__.utils'; '__main__' is not a package

Я попытался добавить файлы __init__.py в каталоги /project, /logic и /tests в разных комбинациях безрезультатно - но честно говоря я просто догадываюсь. Чего мне не хватает в логи импорта c?

1 Ответ

0 голосов
/ 03 апреля 2020

Я исправил это, запустив программу с флагом -m ... d'oh!

...