# Introduction

PyQt-builder is a tool for generating Python bindings for C++ libraries that use the Qt application framework. The bindings are built on top of the PyQt bindings for Qt. PyQt-builder is used to build PyQt itself.

PyQt-builder also includes the pyqt-bundle command line tool used to bundle a copy of Qt with a PyQt wheel. This is separate from the build system and described in Bundling Qt Using pyqt-bundle.

PyQt-builder is actually an extension of the PEP 517-compliant SIP bindings generator and build system. In the simplest cases all that is needed is a `pyproject.toml` file that specifies how the bindings are to be generated. More complicated cases require additional code, typically implemented in a `project.py` file.

SIP provides a number of task-orientated command line tools and a `sipbuild` module which can be used to extend the build system. The command line tools include sip-install to build and install a set of bindings, and sip-wheel to create a wheel that can be uploaded to PyPI.

PyQt-builder doesn’t provide any additional command line build tools but does extend the SIP tools by providing additional command line options and options that can be specified in the `pyproject.toml` file. These are implemented by the `pyqtbuild` module which also provides an API that can be used by a project’s `project.py` file.

This documentation assumes you are already familiar with the SIP documentation.

## Installation

To install PyQt-builder from PyPI, run:

    pip install PyQt-builder