Distributing multiple packages with on setup.py

Jimmy Thrasibule thrasibule.jimmy at gmail.com
Fri Sep 29 18:52:33 EDT 2017


Hi,

I've reorganized my Python project to be under a same name umbrella.
My project can now be seen as multiple subsystems than can depend on
each other. That means that every sub-package can now be distributed
alone so that only required dependencies can be installed.

The old structure:


    /
    ├─ myproj/
    │  ├─ __init__.py
    │  ├─ mod1.py
    │  ├─ subpackage1/
    │  └─ subpackage2/
    └─ setup.py


The new structure:


    /
    ├─ myproj/
    │  ├─ common/
    │  │  └─ mod1.py
    │  ├─ subpackage1/
    │  ├─ subpackage2/
    │  └─ __init__.py
    └─ setup.py


As you can see not much has changed except that `myproj` is now a
`namespace package
<https://packaging.python.org/guides/packaging-namespace-packages/>`_
and that sub-packages ``common``, ``subpackage1`` and ``subpackage2``
can now be distributed independently.

Is it possible, still keeping one unique ``setup.py`` file, to create
3 independent packages?

* ``myproj.common``
* ``myproj.subpackage1``
* ``myproj.subpackage2``

Also I'd like to specify that when installing ``myproj.subpackage1``,
``myproj.common`` is required or that ``myproj.subpackage2`` will
require both ``myproj.common`` and ``myproj.subpackage1``.

Regards,
Jimmy



More information about the Python-list mailing list