If building pillow without the LITTLECMS2 feature (e.g. with the lcms library not present), it was still possible to import ImageCms until pillow 10.2. This is done by using DeferredError:
try:
from . import _imagingcms as core
except ImportError as ex:
# Allow error import for doc purposes, but error out when accessing
# anything in core.
from ._util import DeferredError
core = DeferredError.new(ex)
With the type hints added in 10.3, there is now a top level access to _imagingcms alias core:
--------------------------------------------------------------------
Pillow 10.3.0
Python 3.11.9 (main, Jun 28 2024, 12:22:23) [MSC v.1939 64 bit (AMD64)]
--------------------------------------------------------------------
Python executable is C:\git\...bin\Python.exe
Environment Python files loaded from C:\git\...\bin
System Python files loaded from
--------------------------------------------------------------------
Python Pillow modules loaded from C:\git\...\Lib\site-packages\PIL
Binary Pillow modules loaded from C:\git\...\Lib\site-packages\PIL
--------------------------------------------------------------------
--- PIL CORE support ok, compiled for 10.3.0
*** TKINTER support not installed
*** FREETYPE2 support not installed
*** LITTLECMS2 support not installed
*** WEBP support not installed
*** WEBP Transparency support not installed
*** WEBPMUX support not installed
*** WEBP Animation support not installed
--- JPEG support ok, compiled for libjpeg-turbo 3.0.3
*** OPENJPEG (JPEG2000) support not installed
--- ZLIB (PNG/ZIP) support ok, loaded 1.3.1
--- LIBTIFF support ok, loaded 4.6.0
*** RAQM (Bidirectional Text) support not installed
*** LIBIMAGEQUANT (Quantization method) support not installed
*** XCB (X protocol) support not installed
--------------------------------------------------------------------
If building pillow without the LITTLECMS2 feature (e.g. with the lcms library not present), it was still possible to import
ImageCms
until pillow 10.2. This is done by usingDeferredError
:With the type hints added in 10.3, there is now a top level access to
_imagingcms
aliascore
:Using
causes now (in 10.3/10.4):
Happens both under Windows (as shown) and Linux.
This is probably a fringe problem, but can easily be fixed by using the string version of the problematic type hint:
Environment:
Features: