Вопрос

Эй, все - я потянул волосы с относительным импортом в Python. Я прочитал документацию 30 раз и многочисленные сообщения здесь на так и других форумах - до сих пор не работает.

Моя структура каталогов в настоящее время выглядит так

src/
    __init__.py
    main.py
    components/
        __init__.py
        expander.py
        language_id.py
    utilities/
        __init__.py
        functions.py

Я хочу Expander.py и janguage_id.py иметь доступ к модулю функций. Я запускаю Python Main.py, который доступа к модулям просто отлично с компонентами. Expander Import * и Components.language_id Import *.

Тем не менее, код внутри расширителя и Linke_id для доступа к модулю функций:

from ..utilities.functions import *

Я получаю эту ошибку:

ValueError: Attempted relative import beyond toplevel package

Я перешел на него кучу раз, и, похоже, следит за документацией. У кого-нибудь есть идеи того, что здесь не так?

Это было полезно?

Решение

Немного, я решил это:

src/
    main.py
    mod/
        __init__.py
        components/
            __init__.py
            expander.py
            language_id.py
        utilities/
            __init__.py
            functions.py

Main.py затем относится к подразделению как:

from mod.components.expander import *
from mod.utilities.functions import *

Expander.py и janguage_id.py есть доступ к функциям .py с:

from ..utilities.functions import *

Но интересное в том, что у меня был текстовый файл внутри каталога компонентов, которые использует experder.py. Однако во время выполнения он не мог найти файл, даже если он был в одном каталоге. Я переместил текстовый файл в тот же каталог, что и main.py, и он работал. Кажется противоборбительным.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top