Я пытаюсь настроить pytest с моим проектом, и структура каталогов показана ниже.
├──
├── README.md
├── my_code
│ ├── __init__.py
│ ├── __main__.py
│ └── target_file.py
└── tests
│ ├── __init__.py
│ └── test_one.py
В моем test_one.py я импортирую target_file.py
с
import sys
import os
sys.path.insert(0, "my_code")
, если я запускаю pytest из командной строки в корневом каталоге, это работает.Тем не менее, если я cd
в другой каталог, например в tests
, я получаю сообщение о том, что модуль my_code
не имеет атрибута bla bla bla.Я предполагаю, что это потому, что способ импортирования зависит от того, где я на самом деле нахожусь в каталоге.Поэтому, если я нахожусь в каталоге tests
, он попытается импортировать из /root/tests/my_code
, который не существует.Есть ли способ импортировать target_file.py
в test_one.py
, чтобы, где бы я ни находился, я мог перейти в командную строку и запустить pytest, чтобы мои тесты запускались?В настоящее время мне нужно перейти в корневой каталог, чтобы импорт работал правильно.