Я все еще получаю голову вокруг import
оператор. Если у меня есть 2 папки на том же уровне:
Как сделать py
файлы в test
импортируйте модули в src
? Существует ли лучшее решение (как помещенный папка в другом?)
Вам нужен код для использования src / module_name.py
from src import module_name
и корневого каталога находится на вашем PYTHONPATH, например вы запускаете из корневого каталога
Я использую вашу структуру каталогов, но имя модели вместо src. Я получил эту структуру из блога Дж. Кальдерона и похожую на блог Google
Попробуйте это:
import sys
import os
sys.path.append(os.path.join('..', 'src'))
import module_in_src_folder
отредактировано для поддержки любой платформы
У меня точно такая же ситуация, как и с OP, со всеми проектами Python, которые я пишу:
Все модули, будь то в src, test или их подпапках, всегда используют форму import
, которую Марк показывает в своем ответе:
from src import module_name
Что у меня есть Готово - это написать модуль, который находится в папке проекта
и рекурсивно обнаруживает все тестовые модули в тестовой папке и заставляет unittest запускать все эти тесты. Поскольку python запущен в папке проекта
, модули относятся к рабочему каталогу.
Это означает, что тесты такие же, как и любой другой клиент, которому нужны модули из src
.