July 23, 2020

Why Is Setuptools a Runtime Dependency

… or in other words… Why is this snippet part of setup.py in all Zope projects? install_requires = 'setuptools', This sounds weird at first, but there is good reason. setuptools provides pkg_resources, and the latter is used in __init__.py, in order to declare a namespace package. __import__('pkg_resources').declare_namespace(__name__) Still confused? While pkg_resources-style namespace packages are no longer recommended for new projects, this approach was used to split large packages, and retrieve the contents from more than one location....