Я унаследовал сложный файл setup.py, который использует различные модули Python в отдельной папке под названием buildchain. Весь репозиторий в основном структурирован следующим образом:
Код: Выделить всё
- setup.py
- buildchain
- __init__.py
- extension_generator.py
- src
- my_package
- __init__.py
- my_module.py
с указанием setup.py
Код: Выделить всё
import setuptools
from buildchain.extension_generator import CppExtensionGenerator
setuptools.setup(
...
ext_modules=CppExtensionGenerator().create_ext_modules()
)
Эта структура отлично работает при запуске python setup.py build_ext и подобных вещей, но при установке пакета с помощью pip, например в tox > среды, я получаю ModuleNotFoundError: нет модуля с именем «buildchain». Понятно, но неприятно.
явно исключен из манифеста, поскольку он необходим только для компиляции расширений, но не нужен в других случаях после завершения установки, поэтому я не хочу, чтобы он был в колесе. Рабочее решение — поместить весь код в файл setup.py, но ориентироваться в нем непросто. Я ищу что-то с таким же эффектом, чтобы не добавлять весь этот код в среду Python пользователя навсегда.
Как я могу разделить файл setup.py на разные модули с импортом между ними?
Подробнее здесь:
https://stackoverflow.com/questions/741 ... le-modules