Tal vez sea un error, pero estoy publicando aquí de todos modos.
Obtengo el siguiente problema en mi servidor local de pruebas de AppEngine:
WARNING 2012-01-10 06:08:40,336 rdbms_mysqldb.py:90] The rdbms API is not available because the MySQLdb library could not be loaded. INFO 2012-01-10 06:08:40,470 appengine_rpc.py:159] Server: appengine.google.com INFO 2012-01-10 06:08:40,474 appcfg.py:561] Checking for updates to the SDK. INFO 2012-01-10 06:08:40,990 appcfg.py:574] Update check failed: HTTP Error 404: Not Found WARNING 2012-01-10 06:08:47,643 dev_appserver.py:3344] Could not initialize images API; you are likely missing the Python "PIL" module. ImportError: No module named _imaging INFO 2012-01-10 06:08:47,654 dev_appserver_multiprocess.py:638] Running application dev~project_name on port 8080: http://localhost:8080 INFO 2012-01-10 06:08:47,654 dev_appserver_multiprocess.py:640] Admin console is available at: http://localhost:8080/_ah/admin INFO 2012-01-10 06:09:14,989 dev_appserver_index.py:338] Created 2 and deleted 0 index(es); total 2 WARNING 2012-01-10 06:09:15,480 py_zipimport.py:139] Can't open zipfile /Users/ca/.pythonbrew/venvs/Python-2.7.2/project_name/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg: IOError: [Errno 13] file not accessible: '/Users/ca/.pythonbrew/venvs/Python-2.7.2/project_name/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg' ERROR 2012-01-10 06:09:16,927 bottle.py:746] Traceback (most recent call last): File "/Users/ca/Dropbox/Perso/projects/project_name/Source/project_name/lib/bottle.py", line 735, in _handle return route.call(**args) File "/Users/ca/Dropbox/Perso/projects/project_name/Source/project_name/lib/bottle.py", line 1451, in wrapper rv = callback(*a, **ka) File "/Users/ca/Dropbox/Perso/projects/project_name/Source/project_name/tools.py", line 41, in render_to_response template = jinja_env.get_template(template_name) File "/Users/ca/.pythonbrew/venvs/Python-2.7.2/project_name/lib/python2.7/site-packages/jinja2/environment.py", line 719, in get_template File "/Users/ca/.pythonbrew/venvs/Python-2.7.2/project_name/lib/python2.7/site-packages/jinja2/environment.py", line 693, in _load_template File "/Users/ca/.pythonbrew/venvs/Python-2.7.2/project_name/lib/python2.7/site-packages/jinja2/loaders.py", line 115, in load File "/Users/ca/.pythonbrew/venvs/Python-2.7.2/project_name/lib/python2.7/site-packages/jinja2/loaders.py", line 165, in get_source File "/Users/ca/.pythonbrew/venvs/Python-2.7.2/project_name/lib/python2.7/site-packages/jinja2/utils.py", line 224, in open_if_exists File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 578, in __init__ raise IOError(errno.EACCES, 'file not accessible', filename) IOError: [Errno 13] file not accessible: '/Users/ca/Dropbox/Perso/Projects/project_name/Source/project_name/templates/tools_list.html' INFO 2012-01-10 06:09:16,962 dev_appserver.py:2832] "GET / HTTP/1.1" 500 - INFO 2012-01-10 06:09:16,974 dev_appserver_index.py:255] Updating /Users/ca/Dropbox/Perso/projects/project_name/Source/project_name/index.yaml WARNING 2012-01-10 06:11:36,153 py_zipimport.py:139] Can't open zipfile /Users/ca/.pythonbrew/venvs/Python-2.7.2/project_name/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg: IOError: [Errno 13] file not accessible: '/Users/ca/.pythonbrew/venvs/Python-2.7.2/project_name/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg'
Puede que me equivoque, pero parece que es un problema que no estaba teniendo antes. Desde que Google App Engine fue lanzado el 13 de diciembre de 2011; Me pregunto si podría venir de esta versión.
Estoy usando pythonbrew, virtualenv, Mac Os X 10.6.8
¡Gracias por tu ayuda!
Tengo otra respuesta a su problema, que experimenté solo. Si tienes, por ejemplo, un directorio de plantillas como este:
templates |-- css |-- img |-- js |-- html
Y tu archivo app.yaml como este:
- url: /templates static_dir: templates
No puedes renderizar una plantilla con jinja2 si usas este nombre:
JINJA_ENVIRONMENT.get_template('html/index.html')
Creo que eso se debe a que la opción static_dir bloquea de alguna manera este directorio para jinja2, al menos eso creo, ¡tal vez ayude a alguien!
Simplemente elimine el archivo setuptools-0.6c11-py2.7.egg
de los paquetes de su sitio.
Encuentra la ubicación de los paquetes de tu sitio
Iniciar python CLI:
python
Listar paquetes de sitio:
>>> import site; site.getsitepackages()
En lugar de hacer referencia a mi variable usando una variable de ruta codificada, ahora estoy usando:
PROJECT_DIR = os.path.dirname(__file__)
Y está funcionando. Le haré saber si el problema regresa (vi algunos artículos que lo describen como aleatoriamente recurrente).
También apliqué el parche en el comentario 29 en http://code.google.com/p/googleappengine/issues/detail?id=4339
podría llegar tarde pero tal vez ayudaría a alguien más.
entonces cuando agregues
jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__), 'templates'))
no agregue
- url: /templates static_dir: templates
a su archivo app.yaml
Me ha desconcertado un problema similar: IOError al importar un archivo / paquete de huevo desde los paquetes de sitio. Estoy usando Ubuntu 13.10, GAE 1.8.8, virtualenv y python 2.7.
Al final, me di cuenta de que no podía importar nada de lo que instalé usando easy_install (que por defecto pone los archivos egg en los paquetes de sitio).
Una vez que desinstalé todos estos huevos y reinstalé usando el comando pip install , todo comenzó a funcionar normalmente.
Espero que esto le ahorre a alguien más tiempo, ya que nunca recuperaré mis horas perdidas.
En algunos casos, este error se debe a que dev_appserver.py devuelve un error para la llamada abierta cuando el nombre del archivo coincide con un patrón skip_files en app.yaml. Compruebe app.yaml incluso cuando ejecute dev_appserver.py localmente.