distutils and setuptools (paver.setuputils)

Paver makes it very easy to use and extend Python’s standard distribution mechanisms. The Getting Started Guide has a useful example of moving from distutils and setuptools to Paver.

Integrates distutils/setuptools with Paver.

paver.setuputils.find_package_data(where='.', package='', exclude=('*.py', '*.pyc', '*~', '.*', '*.bak', '*.swp*'), exclude_directories=('.*', 'CVS', '_darcs', './build', './dist', 'EGG-INFO', '*.egg-info'), only_in_packages=True, show_ignored=False)

Return a dictionary suitable for use in package_data in a distutils setup.py file.

The dictionary looks like:

{'package': [files]}

Where files is a list of all the files in that package that don’t match anything in exclude.

If only_in_packages is true, then top-level directories that are not packages won’t be included (but directories under packages will).

Directories matching any pattern in exclude_directories will be ignored; by default directories with leading ., CVS, and _darcs will be ignored.

If show_ignored is true, then all the files that aren’t included in package data are shown on stderr (for debugging purposes).

Note patterns use wildcards, or can be exact paths (including leading ./), and all searching is case-insensitive.

This function is by Ian Bicking.


Makes distutils and setuptools commands available as Paver tasks.


Updates options.setup with the keyword arguments provided, and installs the distutils tasks for this pavement. You can use paver.setuputils.setup as a direct replacement for the distutils.core.setup or setuptools.setup in a traditional setup.py.

Previous topic

The Paver Standard Library

Next topic

File Handling in Paver (paver.path)

This Page