Python __init__ файл не может импортировать модули - PullRequest
1 голос
/ 14 апреля 2020

Я знаю, что этот вопрос задавался ранее, но я не смог получить ответ.

Моя папка пакета выглядит следующим образом, без подпапок, просто папка с плоскими пакетами с файлами .py.

+Package
∣
∣--__init__.py
∣--moduleA.py
∣--moduleB.py

Если я запускаю свой скрипт test.py из папки пакета, импорт, классы и методы работают нормально:

import moduleA.py
import moduleB.py

# ...stuff

Теперь, если я попытаюсь запустить свой пакет извне импортируя import Package, извне \ site-packages я получаю

File "defaultPathTo\Python\Python38\lib\site-packages\Package\__init__.py", line 1, in <module>
    import moduleA
ModuleNotFoundError: No module named 'moduleA'

Это мой файл инициализации

import moduleA
import moduleB

Я попытался изменить содержимое на from moduleA import *, from . import moduleA

from .moduleA import (whatever class), кажется, работает, но я не хочу менять все мои классы с moduleA.ClassA, потому что это конфликтует с именами классов из других модулей.

Я думаю, что я суммировал до всей информационной необходимости. Спасибо за помощь

1 Ответ

0 голосов
/ 15 апреля 2020

Использование from . import moduleA для всех импортов из моего пакета сделало свое дело.

Возможно, я сделал что-то не так с первой попытки, потому что получил no known parent folder

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...