This library provides a wrapper for several other Python libraries which together compile fonts from various sources (.glyphs, .ufo) into binaries (.otf, .ttf).
Fontmake requires Python 2.7, 3.5 or later.
pip install fontmake
--upgrade option to update fontmake and its dependencies
to the newest available release:
pip install -U fontmake
Alternatively, you can download the git repository and install from source:
git clone https://github.com/googlei18n/fontmake cd fontmake pip install .
Developers who want to quickly test changes to the source code without re-installing, can use the "--editable" option when installing from a local source checkout:
pip install -e .
However, even with an editable installation, it is recommended to always reinstall fontmake after pulling the latest changes from the upstream repo:
git pull pip install -e .
This makes sure that the requirements are still met, i.e. updating old ones to new minimum required versions, or installing new ones as needed.
It also ensures that the package metadata is updated, e.g. when displaying the
installed version with
pip list or
pip show fontmake.
It is recommended to install fontmake inside a "virtual environment" to prevent conflicts between its dependencies and other modules installed globally.
To create a new virtual environment, e.g. inside the 'env' directory:
python -m virtualenv env
Similarly, if you are using the
python3 -m venv env
To "activate" a virtual environment, i.e. temporarily place the folder containing the executable scripts on the shell's
$PATHso they can be run from anywhere, run this from the Bash shell (e.g., Linux, Mac):
If you are using the Windows Command Prompt:
To deactivate the virtual environment and restore the original environment, just do:
Dependencies and requirements files
Fontmake is mostly the front-end interface for a number of Python libraries.
These are automatically installed or updated to the minimum required version whenever you install a given fontmake version.
Pip also allows to specify a set of packages that work together in text files.
These can be used with the
-r option to recreate a particular environment.
There are two such requirements files in fontmake repository:
dev_requirements.txt: contains the URLs of the git repositories for all fontmake's dependencies.
requirements.txt: contains the current released versions of the direct dependencies which fontmake is tested against.
To install from the latest development versions, or upgrade an existing
environment to the current
HEAD commit of the respective
branches, you can do:
pip install -r dev_requirements.txt
For more information on requirements files, see pip documentation.
After installation, you can use the
fontmake console script. For example:
fontmake -g MyFont.glyphs # outputs binary font files for masters only
fontmake -h to see options for specifying different types of input and
You can also use fontmake as a module to run intermediate steps in the build
process, via methods of the