Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Installing PIL with JPEG support on Mac OS X

People also ask

How do I know if PIL is installed?

Step 2: To check if PIL is successfully installed, open up the python terminal by typing python3 in the terminal. This will open up the python3 interactive console now type the following command to check the current version of the PIL. This will output the currently installed version of the PIL.

How do I update my version of pillow?

Requirement already satisfied (use --upgrade to upgrade): Pillow in /usr/lib/python3/dist-packages You are using pip version 8.1. 1, however version 19.2. 1 is available. You should consider upgrading via the 'pip install --upgrade pip' command.


In our virtualenv we found all we needed to do was:

pip uninstall PIL
brew install libjpeg
pip install PIL

which is simpler than some of the above and may be enough for others with this problem too. Although there was an xcode warning on the brew and a setup.py package warning on the reinstall of PIL, all the tests that previously failed with jpeg decode errors successfully ran after just the quick action above.


I installed libjpeg and PIL on Snow and it was migrated without problems to Lion.

I think however that you have the same problem I faced with installing libjpeg 7 on Snow. The solution for me was :

  • Make sure that you are NOT using GCC 4.0. That means those export lines in your .bash_profile file that you needed to get MySQLdb working now need to go away.
  • get (http://www.ijg.org/files/jpegsrc.v7.tar.gz) and do the usual ./configure && make && make install (or whatever the readme says).
  • Before installing PIL but after installing libjpeg, change the “JPEG_ROOT = None” line in my setup.py file to “JPEG_ROOT = libinclude(“/usr/local”)”

I got this from a comment on this blog.

Afterwards you can reinstall PIL through pip or easy_install. Make sure all the compiled stuff from your last run is deleted (sometimes you need to do this manually). I used virtualenv and pip.


Make sure you have homebrew and pip, and then run:

brew install libjpeg
pip install pil

I used the following binary to get libpng and libjpeg installed systemwide on OSX:

libpng & libjpeg for OSX

Because I already had PIL installed (via pip on a virtualenv), I ran:

pip uninstall PIL
pip install PIL --upgrade

This resolved the decoder JPEG not available error for me.

UPDATE:

If encountering the error encoder jpeg not available, you may need to install libjpeg. If using Homebrew:

brew install libjpeg

Worth noting and good information to have whenever working with Python and PIL: If you use virtualenv (and I think it's a very good idea), PIL may not correctly detect the image libraries on your system and install without JPEG/PNG support. Use the pillow package for a compatible PIL fork that finds them correctly.


For OSX, pip install PIL had:

--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version       1.1.7
platform      darwin 2.7.2 (default, Oct 11 2012, 20:14:37)
              [GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)]
--------------------------------------------------------------------
--- TKINTER support available
*** JPEG support not available
--- ZLIB (PNG/ZIP) support available
*** FREETYPE2 support not available
*** LITTLECMS support not available
--------------------------------------------------------------------

Another post led to something that works.

Install the libraries from here.


If you have macports installed, you should do a:

$ sudo port selfupdate
$ sudo port install py27-pil

It's easier than the easy_install + libjpeg method since macports install the right dependencies.