#python
#python
Вопрос:
Проблема:
Я настраиваю модульное тестирование, pytest
и мне нужно импортировать объекты, которые я хочу протестировать. Я установил пакет, который я тестирую в режиме редактирования. Однако from my_pkg.file import File
причины ImportError
.
Я вижу установленный модуль со ссылкой на мой удаленный репозиторий, -e
перед которым при запуске добавляется семафор pip freeze
.
Я также вижу объект egg, находящийся в каталоге package в /src.
Сообщение об ошибке в консоли:
Ошибка импорта при импорте тестового модуля ‘C:Userszzzsourcereposprojapplicationteststest_file.py «. Подсказка: убедитесь, что ваши тестовые модули / пакеты имеют допустимые имена Python. Трассировка: возвращает _bootstrap._gcd_import(имя [level:], пакет, уровень) из my_pkg.file импортируйте файл E ModuleNotFoundError: нет модуля с именем ‘my_pkg’
Каталог пакетов:
Комментарии:
1. Где
my_pkg
существует в вашей иерархии каталогов иmy_pkg/__init__.py
существует ли?2. @chepner Я добавил изображение каталога пакета в сообщение.
3. Но где это
my_pkg
? Он должен находиться в каталоге на вашем пути к Python.4. @chepner my_pkg устанавливается в виртуальной среде, а не глобально. Я выбрал venv, на который он установлен в VSCode.
5. Я предполагаю
application/src
, что это не на вашем пути к Python. Помимо жестко запрограммированного по умолчанию для конкретного интерпретатора, единственным неявно добавляемым каталогом является любой каталог, содержащий основной скрипт, который для ваших тестов будет выглядетьtests/
.application/src
нет, поэтому Python не найдетmy_pkg
.