Я новичок в создании пакетов, так что терпите меня. У меня проблема с импортом подпакетов моего последнего python проекта.
Моя структура каталогов следующая:
├── package
│ ├── __init__.py
│ ├── subpackage_a
│ │ ├── __init__.py
│ │ └── functions_a.py
│ └── subpackage_b
│ ├── __init__.py
│ └── functions_b.py
└── setup.py
Файлы выглядят следующим образом
setup.py:
from setuptools import setup
setup(name='test_package',
version='0.3',
description='',
author='me',
packages=['package']
)
пакет / __ init __. Py : пусто.
subpackage_a / __ init __. Py : from .functions_a import *
subpackage_b / __ init__. py : from .functions_b import *
functions_a.py
содержит
def hello_world_a():
print('hello its a')
и functions_b.py содержит
def hello_world_b():
print('hello its b')
Теперь я открываю virtualenv
go для каталога setup.py и I pip install .
. Я ожидал получить доступ к функциям, содержащимся в подпакетах a и b. Но когда я пытаюсь импортировать функции, я получаю ошибку «модуль не найден».
from package.subpackage_a import hello_world_a
ModuleNotFoundError: No module named 'package.subpackage_a'
и то же самое относится к subpackage_b. Но если я импортирую пакет, это признается. У меня есть ощущение, что этот подход работал, поскольку у меня есть несколько старых пакетов, написанных таким образом, которые больше не работают.
Возможно, мне нужно изменить мои init .py файлы? Что я делаю неправильно ?