Python не может найти локальный модуль


У меня есть такая структура папок:

setup.py
core/
    __init__.py
    interpreter.py
tests/
    __init__.py
    test_ingest.py

Если я попытаюсь импортировать core в test_ingest.py и запустить его, я получу ImportError, говорящее, что модуль core не может быть найден. Однако я могу импортировать core в setup.py без проблем. Моя IDE не волнуется, так почему же происходит эта ошибка?

1 3

1 ответ:

Когда вы import Ваш пакет, Python ищет каталоги на sys.path, пока не найдет один из них: файл с именем "core.py", или каталог под названием "core", содержащий файл с именем __init__.py. Затем Python импортирует ваш пакет.

Вы можете успешно import core из setup.py, потому что путь к каталогу core находится в sys.path. Вы можете увидеть это сами, запустив этот фрагмент из вашего файла:

import sys

for line in sys.path:
     print line

Если вы хотите импортировать core из a другой файл в структуре папок, вы можете добавить путь к каталогу, где core находится в sys.path в вашем файле:

import sys
sys.path.append("/path/to/your/module")