У меня есть проект под названием build-your-own-computer со структурой, которая выглядит следующим образом:
build-your-own-computer
├── computer
│ ├── arithmetic
│ ├── __init__.py
│ ├── logic
│ └── memory
├── README.md
├── setup.py
├── setup.py~
├── solutions
│ ├── arithmetic
│ │ ├── half_adder.py
│ │ ├── __init__.py
│ │ └── __init__.py~
│ ├── __init__.py
│ ├── __init__.py~
│ ├── logic
│ │ ├── _and.py
│ │ ├── __init__.py
│ │ ├── __init__.py~
│ │ ├── _not.py
│ │ ├── _or.py
│ │ └── xor.py
│ └── memory
│ └── __init__.py
└── tests
├── arithmetic
│ └── test_half_adder.py
├── logic
│ ├── test_and.py
│ ├── test_not.py
│ ├── test_or.py
│ └── test_xor.py
└── memory
Моя цель - иметь возможность установить этот проект / пакет с помощью pip, а затем использовать это из любой точки моей системы. Я хочу импортировать пакеты / модули следующим образом:
from byoc.solutions.logic import _and
from byoc.computer.arithmetic import half_adder
Насколько я понимаю, build-your-own-computer
сам по себе можно считать пакетом, build-your-own-computer\computer
подпакетом и build-your-own-computer\computer\logic\
подпунктом. пакет. Все файлы .py
кроме init и setup.py
являются модулями. Правильно ли это, и соответствует ли приведенная выше схема импорта этой структуре проекта?
Все файлы __init__.py
пусты.
setup.py
содержит следующее:
from setuptools import setup, find_packages
setup(
name='byoc',
packages=find_packages()
)
Когда я устанавливаю это с помощью pip и затем пытаюсь импортировать подмодули, у меня возникают проблемы:
>>> from byoc.solutions.logic import *
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'byoc.solutions'
Я могу импортировать byoc
без ошибок.
Я, очевидно, делать что-то не так, но что?