Overview

Upgrade from Labelme v6 to v7

Unofficial preview. Docsbook assembled this page from the public wkentaro/labelme README.md and examples/ directory. It is not affiliated with, endorsed by, or maintained by the Labelme project. The official documentation lives at labelme.io/docs.

Labelme v7.0.0 raises the platform floor and removes the Python import surface. Four things change, and three of them can break a working setup silently.

What changed#

Area v6.3.x v7.x
Qt binding PyQt5 (Qt5) PySide6 (Qt6) — pip install labelme now pulls PySide6
Python 3.10 – 3.11 3.12 – 3.14
Operating system Includes older OSes Qt5 supported 64-bit macOS, Windows or Linux
Python imports Internal modules importable Privatised, underscore-prefixed — no public API
Config booleans yes/no/on/off read as booleans Parsed by ruamel.yaml as YAML 1.2 — those spellings read as strings

Fix your config booleans first#

This is the change most likely to pass unnoticed. ~/.labelmerc is now parsed with ruamel.yaml as YAML 1.2, so yes, no, on and off — in any capitalisation — are read as strings rather than booleans.

A setting written this way does not error. It is simply no longer the boolean you meant. Rewrite every boolean option to true or false:

# before, on v6
auto_save: yes
 
# after, on v7
auto_save: true

Replace any imports of Labelme internals#

import labelme.app, import labelme.utils, import labelme.widgets and similar no longer work. Labelme is an application, not a library, and v7 renamed its internal modules with underscore prefixes.

Two supported routes forward:

  1. Read the JSON format directly in your own code. examples/utils.py is the reference implementation and depends only on the standard library, numpy and PIL — copy it next to your scripts and adapt it. See reading annotations in Python.
  2. Stay on v6 and vendor what you need:
pip install 'labelme<7'

All previous releases remain installable from PyPI, so existing pins keep working.

Decide whether to move at all#

Stay on v6.3.x if you need PyQt5 or Qt5, Python 3.10 or 3.11, or an operating system Qt6 does not cover. That line receives critical fixes only, on a best-effort basis with no release cadence: security vulnerabilities, data-loss or annotation-corruption bugs, and install or launch breakage caused by upstream dependency drift. Feature backports and non-critical bugs are out of scope.

Everything else — new features, new AI models, new exports — happens on v7.x.

Updated

Was this page helpful?