Не удается получить субмодуль для правильного импорта в другое приложение - PullRequest
2 голосов
/ 15 марта 2020

Я создаю пару Python библиотек / приложений. Я все еще относительно новичок в Python, и я много борюсь с системой импорта. Я думаю, что у меня есть хорошая ручка для импорта внутри приложения / модуля, но сейчас я пытаюсь импортировать модули из библиотеки, которую я создаю для публикации publi c, в мой другой проект, и я выкладываюсь не удается распознать подмодули для импорта.

Обсуждаемая библиотека: https://github.com/utoxin/PyChance

И я пытаюсь импортировать класс SimpleTable из pychance / данные / simpletable_class.py. Я пробовал несколько разных операторов импорта и даже разные организации библиотеки, включая перемещение simpleable.py в каталог верхнего уровня и различные строки импорта в файлах init .py библиотеки.

Моя IDE предлагает

from pychance import SimpleTable

с моей текущей настройкой, но затем сразу же говорит, что не может найти ссылку на это в init .py.

Если я попробую что-то вроде

from pychance.data import SimpleTable

, он не узнает, что «данные» существуют.

Возможно, я что-то упускаю из основы c, но не могу понять что я делаю не так.

ERRATUM

Пакет PyChance содержит следующие исходные файлы:

pychance/__init__.py
pychance/pychance_class.py
pychance/data/__init__.py
pychance/data/simpletable_class.py
pychance/parsing/__init__.py
pychance/parsing/parser.py
pychance/utility/__init__.py
pychance/utility/singleton.py

Источник pychance/data/__init__.py:

from .simpletable_class import SimpleTable

Источник исходного кода pychance/data/simpletable_class.py:

import random


class SimpleTable:
    ...


if __name__ == '__main__':
    ...

(*) урезан.

1 Ответ

1 голос
/ 15 марта 2020

В соответствии с упаковкой PyChance, следующие 2 импорта являются функциональными:

from pychance.data.simpletable_class import SimpleTable
from pychance.data import SimpleTable

У меня нет проблем с PyCharm.

У вас могут быть проблемы с вашей IDE.

...