Esta aplicação Django tem uso bastante simples, mas eu não conseguia fazer a exibição das imagens corretamente. Eu usei a ferramenta
virtualenv para montar meu ambiente de desenvolvimento, e as bibliotecas estavam instaladas lá via pip. A biblioteca PIL é uma dependência de Simple Captcha, justamente por permitir a criação de imagens por código. No meu formulário, ficou assim:captcha = CaptchaField( label = 'Repita os caracteres a seguir')Mas a exibição do formulário continha apenas o texto alternativo. O comando
manage.py runserver mostrava um código 500 para a URL das imagens do captcha. Acessando a imagem da URL em si, pude verificar o seguinte erro: The _imagingft C module is not installedUm erro que já tinha me deparado antes, mas nunca registrei a solução. Essencialmente, a instalação via pip compila a bilioteca PIL, e o uso do Simple Captcha requer o suporte a Freetype2 no momento da compilação para poder gerar as imagens corretamente. Para corrigir isso no Ubuntu 12.10, basta colocar as referências certas antes da compilação:
# ln -s /usr/lib/`uname -i`-linux-gnu/libfreetype.so /usr/lib/ # ln -s /usr/lib/`uname -i`-linux-gnu/libjpeg.so /usr/lib/ # ln -s /usr/lib/`uname -i`-linux-gnu/libz.so /usr/lib/
Depois, basta instalar a biblioteca PIL:
pip install pilA mensagem final da compilação deverá mostrar algo como
--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version 1.1.7
platform linux2 2.7.3 (default, Sep 26 2012, 21:51:14)
[GCC 4.7.2]
--------------------------------------------------------------------
*** TKINTER support not available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
*** LITTLECMS support not available
--------------------------------------------------------------------E deverá funcionar! Encontrei a solução neste link.