{"id":23762,"library":"fontmake","title":"fontmake","description":"A Python library for compiling fonts from sources (UFO, Glyphs) to binary (OpenType, TrueType). Version 3.11.1, requires Python >=3.9.","status":"active","version":"3.11.1","language":"python","source_language":"en","source_url":"https://github.com/googlei18n/fontmake","tags":["font","typeface","compilation","UFO","Glyphs","OpenType","TrueType","variable fonts"],"install":[{"cmd":"pip install fontmake","lang":"bash","label":"standard"},{"cmd":"pip install fontmake[repacker]","lang":"bash","label":"with repacker support"}],"dependencies":[{"reason":"required for font operations","package":"fonttools","optional":false},{"reason":"required for Glyphs source support","package":"glyphsLib","optional":false},{"reason":"required for UFO to binary compilation","package":"ufo2ft","optional":false},{"reason":"required for UFO file I/O","package":"ufoLib2","optional":false},{"reason":"optional for path optimization","package":"skia-pathops","optional":true},{"reason":"optional for hinting","package":"ttfautohint-py","optional":true}],"imports":[{"note":"direct import of module gives access to CLI functions","wrong":"import fontmake","symbol":"fontmake","correct":"from fontmake import fontmake"},{"note":"correct module path for programmatic CLI invocation","wrong":"from fontmake import main","symbol":"main","correct":"from fontmake.__main__ import main"},{"note":null,"wrong":null,"symbol":"run_from_designspace","correct":"from fontmake import run_from_designspace"},{"note":null,"wrong":null,"symbol":"FontMakeError","correct":"from fontmake.errors import FontMakeError"}],"quickstart":{"code":"from fontmake import run_from_designspace\nrun_from_designspace('path/to/your.designspace', output_path='output.ttf')","lang":"python","description":"Compile a DesignSpace file into a variable font."},"warnings":[{"fix":"Replace `from fontmake.instantiator import ...` with `from ufo2ft.instantiator import ...`.","message":"The `fontmake.instantiator` module was moved to `ufo2ft.instantiator` in v3.9.0. Import from `ufo2ft.instantiator` instead.","severity":"deprecated","affected_versions":">=3.9.0"},{"fix":"If you need `USE_MY_METRICS`, set it explicitly in your source or pass `--use-my-metrics` to fontmake (if available) or handle in post-processing.","message":"As of v3.11.0, `USE_MY_METRICS` component flags are no longer automatically set for variable fonts. This can cause metric mismatches if your workflow depended on the old behavior.","severity":"breaking","affected_versions":">=3.11.0"},{"fix":"Upgrade to Python 3.9 or later.","message":"Python 3.8 support dropped in v3.11.0. The library requires Python >=3.9.","severity":"gotcha","affected_versions":">=3.11.0"},{"fix":"Upgrade to >=3.10.1 or ensure the UFO lib.plist has the correct values.","message":"The `skipExportGlyphs` in DesignSpace lib overrides the UFO lib.plist key per the DS spec, but only since v3.10.1 for static TTFs. Prior versions may not respect the override correctly.","severity":"gotcha","affected_versions":"<3.10.1"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Install with `pip install fontmake` and import using `from fontmake import fontmake`.","cause":"The library is not installed or the import path is wrong.","error":"ModuleNotFoundError: No module named 'fontmake'"},{"fix":"Use `from fontmake.__main__ import main` instead.","cause":"Incorrect import for CLI main function.","error":"AttributeError: module 'fontmake' has no attribute 'main'"},{"fix":"Use `from ufo2ft.instantiator import ...`.","cause":"The `instantiator` module was moved to `ufo2ft` in v3.9.0.","error":"ImportError: cannot import name 'instantiator' from 'fontmake'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}