Можно ли создать исходный дистрибутив с python setup.py sdist
, не используя какие-либо __init__.py
файлы в каждом (суб) пакете (python 3.5+)?Я действительно хотел бы просто использовать пакеты пространства имен, чтобы избежать избыточности и накладных расходов.Все вложенные .py
-файлы во всех подпакетах должны быть включены.
Итак, возьмите следующую структуру проекта (я пытался быть аналогом документации Pytest ):
setup.py:
from setuptools import setup, find_packages
setup(
version="0.0.1",
name="py_import_test",
package_dir={"": "src"},
packages=find_packages(where='src')
)
В main.py
Я использую что-то вроде
import py_import_test.p1.helloworld
# do something with helloworld-module
Когда я python setup.py sdist
сВ приведенной выше структуре проекта я не получаю исходных файлов вообще в результирующем .tar.gz.Это работает, только если есть __init__.py
в py_import_test
, p1
и возможных дополнительных подпакетах.
В общем, моя цель - иметь какой-то отдельный пакет приложений, который я могу использовать для тестированияи легко установить мой пакет на удаленный сервер.Для этой цели я бы хотел, чтобы дерево исходных текстов было как можно более компактным и использовало современные шаблоны упаковки Python.
Помимо моего вопроса относительно __init__.py
: будет ли описанная выше процедура считаться хорошей / современной практикой?
Привет