Не удается найти модуль при импорте из проекта в Python - PullRequest
0 голосов
/ 22 января 2019

Моя структура каталогов выглядит следующим образом:

directory_structure

У меня есть некоторые служебные функции в util/misc.py, которые я хочу импортировать в compose_dataset.py.Однако я не могу заставить работать оператор импорта.

Я работаю над Windows Python3.5.4, поэтому из того, что я прочитал, мне больше не нужны файлы __init__.py.Папка проекта является дочерней для моего PYTHONPATH, которая указывает исключительно на E: \ Python.Пока что я попробовал:

from misc import *
from util import *
from util.misc import *
from ..util.misc import *

и получил либо ImportError: No module named 'xyz', либо ImportError: attempted relative import with no known parent package.Я также попытался добавить init-файлы, но у меня нет опыта работы с ними, и я просто добавил по одному в каждый каталог, но (что удивительно) тоже не сработало.

Чего мне здесь не хватает ??

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Установите для PYTHONPATH значение . и добавьте файлы __init__.py в каждый каталог, откуда вы хотите импортировать, в вашем случае добавьте его в каталоги src, data, util.Предполагая, что вы запускаете скрипт «точки входа» из корневого каталога вашего проекта (там же, где находится ваш файл README.md), для импорта используйте следующий код:

# compose_dataset.py file
from src.util.misc import function_name
0 голосов
/ 22 января 2019

Попробуйте:

import sys
sys.path.insert(0, '../')
from util.misc import *

Вы также можете взглянуть на этот пост: Как получить доступ к модулю из-за пределов вашей файловой папки в Python?

...