Instalando PIL dentro de VirtualEnv
A la hora de instalar PIL dentro de VirtualEnv me he encontrado con el siguiente problema:
(ENV)~/ENV$ easy_install pil
Searching for pil
Reading http://pypi.python.org/simple/pil/
Reading http://www.pythonware.com/products/pil
Reading http://effbot.org/zone/pil-changes-115.htm
Reading http://effbot.org/downloads/#Imaging
Best match: PIL 1.1.7
Downloading http://effbot.org/media/downloads/PIL-1.1.7.tar.gz
Processing PIL-1.1.7.tar.gz
Running PIL-1.1.7/setup.py -q bdist_egg --dist-dir /tmp/easy_install-3H1mTt/PIL-1.1.7/egg-dist-tmp-eVNOlg
WARNING: '' not a valid package name; please use only.-separated package names in setup.py
_imaging.c:75:20: fatal error: Python.h: No existe el fichero o el directorio
compilation terminated.
error: Setup script exited with error: command 'gcc' failed with exit status 1
El problema radica en que PIL es que parte está escrita en C, por lo que es necesario compilarlo previamente.
Antes de continuar, vamos a instalar los siguientes paquetes:
$ sudo apt-get install python-dev zlib1g-dev libjpeg62-dev libfreetype6-dev
Y después, la instalación es necesaria hacerla manualmente. Podemos seguir los siguientes pasos:
$ virtualenv --no-site-packages ENV
$ cd ENV/
$ source bin/activate
(ENV)~/ENV$
(ENV)~/ENV$ wget http://effbot.org/downloads/Imaging-1.1.7.tar.gz
(ENV)~/ENV$ tar xvzf Imaging-1.1.7.tar.gz
(ENV)~/ENV$ cd Imaging-1.1.7
(ENV)~/ENV$ python setup.py install
Y ya debería estar todo funcionando. Es posible, que si hemos hecho intentos previos de instalación, la instalación no se realice correctamente. En este caso, lo más sencillo es volver a crear un entorno virtual nuevo.
Para chequear que la instalación se ha realizado correctamente, podemos hacer lo siguiente:
(ENV)~/ENV$ python
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import PIL
>>>
Tags
La teoría es cuando crees saber algo, pero no funciona.
La práctica es cuando algo funciona, pero no sabes por qué.
Los programadores combinan la teoría y la práctica:
Nada funciona y no saben por qué.
