Clone wiki

setuptools_hg / Home


setuptools_hg is a plugin for setuptools that enables setuptools to find files under the Mercurial version control system.

It uses the Mercurial Python library by default and falls back to use the command line programm hg(1). That's especially useful inside virtualenvs that don't have access to the system wide installed Mercurial lib (e.g. when created with --no-site-packages).

The setuptools feature

You can read about the hooks used by setuptool_hg in the setuptools documentation. It basically returns a list of files that are under Mercurial version control when running the setup function, e.g. if you create a source and binary distribution. It's a simple yet effective way of not having to define package data (non-Python files) manually in MANIFEST templates (


Here's an example of a that uses setuptools_hg:

from setuptools import setup, find_packages

If you run this setuptools will automatically download setuptools_hg to the directory where the is located at (and won't install it anywhere else) to get all package data files from the Mercurial repository.


Set the HG_SETUPTOOLS_FORCE_CMD environment variable before running if you want to enforce the use of the hg command.