How do I install The _imagingft C module inside a virtual environment?

August 30, 2015 2.2k views
DigitalOcean Articles Nginx Debian

I have a Python program that imports from PIL. It works from the command line.

When I import my program into a wsgi application program it gets past the importation of PIL, but says “The _imagingft C module is not installed”, on this line of my program:

    height = pt2px(font.getsize(test_string)[1])

My wsgi is running in a virtual environment under gunicorn as per one of your tutorials. Something in the virtual environment is different from the system functions, and I tried a lot of links to find out what, but I’m stuck.

How can I make sure my virtual environment has the same functions as the system?

1 Answer

To ensure that all of your programs dependencies are available, you need to make sure to install them inside of the virtualenv. For example, let’s create a new virtualenv:

  • virtualenv my_app
  • source my_app/bin/activate
  • my_app/bin/pip install Pillow
  • deactivate

If you haven’t already, you also need to make sure the build dependencies for the native extension are installed. This can be done system-wide, outside of the virtualenv:

  • sudo apt-get install python-dev libjpeg-dev libjpeg8-dev libpng3 libfreetype6-dev
Have another answer? Share your knowledge.