How to get Python Pillow (PIL) version?

40,382

Solution 1

Use PIL.__version__ or Image.__version__.

Before Pillow version 6.0.0, its version string could be accessed via the following variable names:

>>> PIL.version.__version__
'5.1.0'
>>> PIL.PILLOW_VERSION
'5.1.0'
>>> PIL.__version__
'5.1.0'
>>>

Not to be confused with the last PIL version that Pillow is built on (and thus hangs on to):

>>> PIL.VERSION
'1.1.7'

There was no information on this in the documentation regarding the fork from PIL: https://pillow.readthedocs.io/en/5.1.x/about.html#why-a-fork

However, PIL's homepage states

Status
The current free version is PIL 1.1.7. This release supports Python 1.5.2 >and newer, including 2.5 and 2.6. A version for 3.X will be released later.

That release is dated "November 15, 2009".

This confirms it's just PIL's last release version.


For future/further digging:

The version string is defined in these source files: https://github.com/python-pillow/Pillow/blob/master/src/PIL/version.py and https://github.com/python-pillow/Pillow/blob/master/src/PIL/__init__.py, or search for all occurences of __version__ in the repository.

(On my Windows, this is installed to %LocalAppData%\Programs\Python\Python36\Lib\site-packages\PIL\version.py)


**Update**

https://pillow.readthedocs.io/en/stable/releasenotes/5.2.0.html

5.2.0 API Changes Deprecations

These version constants have been deprecated. VERSION will be removed in Pillow 6.0.0, and PILLOW_VERSION will be removed after that.

`PIL.VERSION` (old PIL version 1.1.7)
`PIL.PILLOW_VERSION`
`PIL.Image.VERSION`
`PIL.Image.PILLOW_VERSION`

Use PIL.__version__ instead.

https://pillow.readthedocs.io/en/stable/releasenotes/6.0.0.html

6.0.0 Backwards Incompatible Changes

Removed deprecated VERSION

VERSION (the old PIL version, always 1.1.7) has been removed. Use __version__ instead.


2021-12 - this answer is still correct:
>>> import PIL
>>> PIL.__version__
'8.4.0'
>>> from PIL import Image
>>> Image.__version__
'8.4.0'
>>> Image.__version__ is PIL.__version__
True

Solution 2

To get the version for PIL do

>>> PIL.VERSION
'1.1.7'

Edit:

This gives you only the PIL version not the Pillow version. See this answer for more detail.

Solution 3

I tried the above answers, nothing worked for me, but this did (for version 8.0.1:

from PIL import Image
dir(Image)
# AH HAH!  there is an attribute __version__
print(Image.__version__)

8.0.1

Solution 4

Finally I've found a solution:

from PIL import Image 
print('PIL',Image.VERSION)
Share:
40,382
Claude COULOMBE
Author by

Claude COULOMBE

Updated on July 09, 2022

Comments

  • Claude COULOMBE
    Claude COULOMBE almost 2 years

    I would like to get the PIL (Python Imaging Library) version installed on a Mac OS X computer. I've previously installed Pillow, a more friendly fork of PIL.

    I've tried:

    import PIL
    print('PIL',PIL.__version__)
    

    And I've got the error:

    AttributeError: module 'PIL' has no attribute '__version__'
    
  • Claude COULOMBE
    Claude COULOMBE almost 7 years
    Thanks! I've found another solution but yours is working fine too!
  • handle
    handle about 6 years
    Note that this only returns the last version string of PIL, which pillow is based on (but they kept the module name).
  • handle
    handle about 6 years
    To clarify: this does not return the version of Pillow.
  • handle
    handle about 6 years
    This does not return the Version of Pillow, but the (old) underlying PIL version. It is identical to PIL.VERSION (source).