make distutils in Python automatically find packages
distutils, python, setup.py
Solution
The easiest way (that I know of) is to use `pkgutil.walk_packages` to yield the packages:
from distutils.core import setup
from pkgutil import walk_packages
import mypackage
def find_packages(path=__path__, prefix=""):
yield prefix
prefix = prefix + "."
for _, name, ispkg in walk_packages(path, prefix):
if ispkg:
yield name
setup(
# ... snip ...
packages = list(find_packages(mypackage.__path__, mypackage.__name__)),
# ... snip ...
)
Problem
When describing a python package in `setup.py` in `distutils` in Python, is there a way to make it so automatically get every directory that has a `__init__.py` in it and include that as a subpackage? ie if the structure is: ``` mypackage/__init__.py mypackage/a/__init__.py mypackage/b/__init__.py ``` I want to avoid doing: ``` packages = ['mypackage', 'mypackage.a', 'mypackage.b'] ``` and instead just do: ``` packages = ['mypackage'] ``` and have it automatically find things like `a` and `b` since they have an init file. thanks.