Load fonts.

pyglet will automatically load any system-installed fonts. You can add additional fonts (for example, from your program resources) using add_file() or add_directory(). These fonts are then available in the same way as system-installed fonts:

from pyglet import font
action_man = font.load('Action Man', 16)
# or
from pyglet import resource
action_man = font.load('Action Man')

See the pyglet.font.base module for documentation on the base classes used by this package.


Add a directory of fonts to pyglet’s search path.

This function simply calls pyglet.font.add_file() for each file with a .ttf extension in the given directory. Subdirectories are not searched.


Directory that contains font files.

add_file(font: Union[str, BinaryIO])

Add a font to pyglet’s search path.

In order to load a font that is not installed on the system, you must call this method to tell pyglet that it exists. You can supply either a filename or any file-like object.

The font format is platform-dependent, but is typically a TrueType font file containing a single font face. Note that to use a font added with this method, you should pass the face name (not the file name) to :meth:pyglet.font.load() or any other place where you normally specify a font.

fontstr or file-like object

Filename or file-like object to load fonts from.

have_font(name: str) bool

Check if specified system font name is available.

load(name: Optional[Union[str, Iterable[str]]] = None, size: Optional[float] = None, bold: bool = False, italic: bool = False, stretch: bool = False, dpi: Optional[float] = None)

Load a font for rendering.

namestr, or list of str

Font family, for example, “Times New Roman”. If a list of names is provided, the first one matching a known font is used. If no font can be matched to the name(s), a default font is used. In pyglet 1.1, the name may be omitted.


Size of the font, in points. The returned font may be an exact match or the closest available.


If True, a bold variant is returned, if one exists for the given family and size.


If True, an italic variant is returned, if one exists for the given family and size.


The assumed resolution of the display device, for the purposes of determining the pixel size of the font. Defaults to 96.

Return type