Неизвестный путь модуля во время импорта в тесте класса в Python 3 - PullRequest
0 голосов
/ 11 октября 2018

Я изучаю Python 3 и не понимаю, как работает связь между каталогами в файловой системе и модулях при рефакторинге моего личного проекта.

В моем корневом каталоге есть root directory of my project

и я выполняю свои модульные тесты в

. \ Explicateimgnames \ explicateimgnames \ tests

Здесь я запускаю GIT Bash

$ python -m unittest *

И я получаю эту ошибку

======================================================================

ОШИБКА: Test_FactoryIMG (unittest.loader._FailedTest)


ImportError: Не удалось импортировать тестовый модуль: Test_FactoryIMG

Traceback (самая последняяпоследний вызов):

Файл "C: \ Users \ apuzielli \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ unittest \ loader.py", строка 434, в _find_test_path

module = self._get_module_from_name(name)

Файл "C: \ Users \ apuzielli \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ unittest \ loader.py", строка 375, в _get_module_from _имя

__import__(name)

Файл "D: \ workspacePython \ explicateimgnames \ explicateimgnames \ tests \ Test_FactoryIMG.py", строка 4, в

import explicateimgnames.explicateimgnames.src.typefiles.Image

ModuleNotFoundError: Нет модуля с именем 'explicateimgnames'

Исходный код

import unittest

import explicateimgnames.explicateimgnames.src.typefiles.Image



class Test_FactoryImage(unittest.TestCase):

Я пробовал другой путь:

  • import explicateimgnames.src.typefiles.Image
  • import src.typefiles.Image

Но у меня такая же ошибка

Ситуация с файловой системой моего проекта:

> explicateimgnames
>         |-licence
>         |-manifest
>         |-readme
>         |-setup.py
>         |-explicateimgnames
>                 |-src
>                 |  |-typefiles
>                 |  |     |-Image (contains class Image)
>                 |-test
>                 |  |-Test_FactoryIMG

Изучая вопросы, я прочитал (например, здесь ), что мне нужно импортировать модуль __importlib__, но это означает, что Python не имеет собственного механизмаимпорт класса.

Я рассуждаю в терминах Java, в чем моя ошибка в этом случае?

Спасибо

...