Относительный импорт из пакета верхнего уровня - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть эта структура

proj
 utils.py
    |- sub1
        file1.py
    |- sub2
        file2.py
 ...

utils.py - это модуль, содержащий множество полезных функций.Я хочу, чтобы они были доступны в каждом filesX.py в подкаталогах, например, через utils.func1() ...

. Поэтому я хочу импортировать utils из file1.py через from .. import utils, но я получаю

ValueError: attempted relative import beyond top-level package

ошибка.

Есть ли чистый способ сделать это без добавления абсолютных путей и без редактирования PYTHONPATH?

1 Ответ

0 голосов
/ 13 февраля 2019

попробуйте это:

from proj import utils

Мое мнение таково, что именно так можно решить эту проблему, если вы не хотите редактировать переменную eny Environment.

Использование абсолютного импорта означает, чтоне имеет значения, где в проекте находится модуль, когда вы пытаетесь импортировать другой модуль.Python всегда будет искать модуль для импорта из корня вашего пакета.

...