Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Installing PyGtk in virtualenv

So I am trying to run a simple matplotlib example in my virtualenv (in the console). Here's the code:

import matplotlib matplotlib.use('GTKAgg') import matplotlib.pyplot as plt radius = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0] area = [3.14159, 12.56636, 28.27431, 50.26544, 78.53975, 113.09724] plt.plot(radius, area) plt.show() 

However, when I run this I get:

ImportError: Gtk* backend requires pygtk to be installed.

And now the fun starts. I tried to pip install pygtk but it throws:

******************************************************************** * Building PyGTK using distutils is only supported on windows. * * To build PyGTK in a supported way, read the INSTALL file.    * ******************************************************************** Complete output from command python setup.py egg_info: ******************************************************************** 

I have checked the INSTALL file and says to try ./configfure; make; make install. However. I am not quite sure how to do this within virtualenv. Where do I unpack the sources for pygtk in order to be installed within virtualenv.

like image 889
George Eracleous Avatar asked Jan 30 '12 13:01

George Eracleous


People also ask

Can I install python in Virtualenv?

Creating a virtual environment venv (for Python 3) and virtualenv (for Python 2) allow you to manage separate package installations for different projects. They essentially allow you to create a “virtual” isolated Python installation and install packages into that virtual installation.


1 Answers

The trick is to manually set the correct paths and then run configure inside the virtualenv. This is quite basic, but it worked for me.

Install python-config in the virtual env and link it to python2.7-config:

pip install config ln -s /home/PATH/TO/VIRT/bin/python-config /home/PATH/TO/VIRT/bin/python2.7-config 

Install cairo in the virtual env:

wget http://cairographics.org/releases/py2cairo-1.10.0.tar.bz2 tar -xf py2cairo-1.10.0.tar.bz2 cd py2cairo-1.10.0 ./waf configure --prefix=/home/PATH/TO/VIRT/ ./waf build ./waf install 

Install PyGTK

wget http://pypi.python.org/packages/source/P/PyGTK/pygtk-2.24.0.tar.bz2 tar -xf pygtk-2.24.0.tar.bz2 cd pygtk-2.24.0 export PKG_CONFIG_PATH=/home/PATH/TO/VIRT/lib/pkgconfig ./configure --prefix=/home/PATH/TO/VIRT/ make  make install 

And that should do it. Just replace PATH/TO/VIRT/ with your own path. I'm sure someone could assist on adding the path to virtualenvwrapper?

like image 180
salomonvh Avatar answered Sep 23 '22 06:09

salomonvh