I actually found the chosen solution here to be great help. I also found that the djangcms installer wants a specific version of Pillow, which results in it not picking up the JPEG module for whatever reason. At the time of this writing, it wanted Pillow==2.8.0
but the latest version that pip --upgrade
was installing was 2.9.x. I ran pip install --no-cache-dir --upgrade --force-reinstall pillow==2.8.0
and that seemed to satisfy the djangocms installer's requirement such that it would retain JPEG compatibility.
You can verify that JPEG support is installed by opening a python shell in the virtualenv.
from PIL import Image
i = Image.open('/path/to/a.jpg')
i.load()
You'll either get a handle to the loaded image or an exception if there's no JPEG support.
So pip was succesfully installing a Pillow package with JPEG support, but as soon as I ran the djangocms installer, it was replacing it with a Pillow package without JPEG support. You need to match the version of Pillow that djangocms installer wants. I don't know where that config is, but you can figure it out with pip freeze
or pip list
after a failed install.
Hopefully this helps someone.