Installation#
Icons come from packs, and a pack is installed as an extra:
pip install "tkinter-icons[material]"
The quotes matter. Most shells treat unquoted brackets as a glob pattern, and zsh fails outright on pip install tkinter-icons[material].
Need more than one set? Name them together:
pip install "tkinter-icons[material,simple]"
Choosing a pack covers which one to reach for; Icon packs is the full catalogue with sizes, styles, and upstream versions.
The base package draws nothing#
Important
Every install line in this documentation carries an extra, and that is deliberate. pip install tkinter-icons gives you a working renderer with no glyphs — asking for an icon class then raises an ImportError naming the command you actually wanted.
The split exists because each pack ships its own font. Bundling all sixteen would cost roughly 17 MB to supply fifteen icon sets an application never opens, so they are separate distributions — presented as extras so you install one library rather than learning sixteen distribution names.
Warning
There is no [all] extra, and asking for one fails quietly. pip does not treat an unknown extra as an error, so pip install "tkinter-icons[all]" reports success and installs the base package — leaving you exactly where the note above says you do not want to be, with no indication that anything was ignored. Name the sets you use.
Icon packs covers why there is no [all] and never will be.
Requirements#
Requirement |
Notes |
|---|---|
Python 3.10+ |
Tested on 3.10 through 3.13. |
Tk 8.6+ |
Ships with CPython on Windows and macOS. |
Pillow |
Installed for you; it is what does the rendering. |
On Linux, Tk usually comes from your distribution rather than from pip:
sudo apt install python3-tk # Debian, Ubuntu
sudo dnf install python3-tkinter # Fedora
You do not need a display to render icons. Tk still has to be installed, but nothing has to be shown — Headless rendering covers rendering with no display, no root window, and no event loop.
Checking what you have#
from tkinter_icons import installed_packs
for pack in installed_packs():
print(pack.extra, "-", pack.label)
material - Material Design Icons
simple - Simple Icons
Or run the browser, which lists every installed set:
tkinter-icons