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

Posted August 30, 2015 3.6k views
NginxDebianDigitalOcean Articles

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?

edited by asb

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
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