Me parece interesante contar la experiencia que tuve ayer al configurar el entorno de desarrollo de GAE en una máquina Linux (Fedora 15 en este caso), sobre todo por si puede ayudar a otros desarrolladores y evitar algunos dolores de cabeza.

Aquellos que trabajen con GAE han de saber que hasta nueva orden, el sistema necesita Python 2.5 para poder funcionar correctamente. Google así lo recomienda, aunque recuerdo haberlo hecho funcionar sobre Python 2.6 en mi anterior vida (cuando era Ubuntu).

Voy a intentar reconstruir el camino correcto a seguir para configurar el entorno de desarrollo de GAE sobre un Fedora 15 (ya que di muchas idas y venidas).

La última versión de Fedora tiene por defecto Python 2.7, y si intentaba arrancar el proyecto en local usando esta versión de Python, tenía serios problemas de incompatibilidades de módulos, por ello me bajé Python 2.5.

Por otro lado instalé un par de librerías que necesitaría más adelante (esto tardé varias horas en hacerlo funcionar, por el orden en que hacía las cosas):

sudo yum install openssl openssl-devel -y
sudo yum install sqlite-devel

Una vez instaladas estas librerías era el momento de compilar el código de Python 2.5 e instalarlo. Antes de nada, hay que modificar el fichero <python-folder>/Modules/Setup.dist y descomentar las siguientes líneas:

# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
SSL=/usr/local/ssl
_ssl _ssl.c 
	-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl 
	-L$(SSL)/lib -lssl -lcrypto

(Líneas 206-209)

De esta forma habilitamos el módulo de SSL cuando construyamos Python.

Es hora de construir Python:

su
./configure
make
make altinstall

Con el make altinstall lo que hacemos es instalar Python en una ruta diferente y no machacar la versión actual que tengamos instalada en el sistema.

Si todo ha ido bien, ahora podremos usar

python2.5 dev_appserver.py --port 8080 RutaDeTuAplicación

Si compilamos Python 2.5 sin haber instalado las librerías arriba mencionadas o sin haber habilitado los módulos de SSL podríamos encontrarnos problemas como estos a la hora de arrancar el proyecto:

AttributeError: 'module' object has no attribute 'HTTPSHandler'

o

ImportError: No module named _sqlite3

(Dependiendo de lo complejo que sea vuestro proyecto, claro.)

Espero que esta pequeña guía sirva de ayuda para aquellos que tengan los mismos problemas que tuve en su momento.

Compartir es poder.