Improving and Building the Documentation

PyInstaller’s documentation is created using Sphinx. Sphinx uses reStructuredText as its markup language, and many of its strengths come from the power and straightforwardness of reStructuredText and its parsing and translating suite, Docutils.

The documentation is maintained in the Git repository along with the code and pushing to the develop branch will create a new version at

For small changes (like typos) you may just fork PyInstaller on Github, edit the documentation online and create a pull-request.

For anything else we ask you to clone the repository and verify your changes like this:

pip install -r doc/requirements.txt
cd doc
make html
xdg-open _build/html/index.html

Please watch out for any warnings and errors while building the documentation. In your browser check if the markup is valid prior to pushing your changes and creating the pull-request. Please also run:

make clean
make html

to verify once again everything is fine. Thank you!

We may ask you to rework your changes or reword your commit messages. In this case, use git rebase -i and git push -f to update your pull-request. See Updating a Pull-Request for details.

PyInstaller extensions

For the PyInstaller documentation there are roles available * in addition to the ones from Sphinx and docutils.


Refer to a commit, creating a web-link to the online git repository. The commit-id will be shortened to 8 digits for readability. Example: :commit:`a1b2c3d4e5f6a7b8c9` will become @a1b2c3d.


Link to an issue or pull-request number at Github. Example: :issue:`123` will become #123.


Defined in doc/_extensions/

reStructuredText Cheat-sheet

  • Combining markup and links:

    The easiest way to install PyInstaller is using |pip|_::
    .. |pip| replace:: :command:`pip`
    .. _pip: