IOError: no se puede acceder al archivo con Google AppEngine 1.6.1

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.