I'm trying to use i18n in google app engine with jinja2.
I found a tutorial here http://webapp-improved.appspot.com/tutorials/i18n.html
Everything is fine except one thing.
I got an error every time after I modify .py file which import webapp2_extras.i18n.
.
This is the error message.
ERROR 2012-08-23 18:31:51,505 wsgi.py:191]
Traceback (most recent call last):
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\runtime\wsgi.py", line 189, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\runtime\wsgi.py", line 227, in _LoadHandler
handler = __import__(path[0])
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 676, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 1859, in load_module
return self.FindAndLoadModule(submodule, fullname, search_path)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 676, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 1723, in FindAndLoadModule
description)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 676, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 1666, in LoadModuleRestricted
description)
File "C:\Users\Jinmo\dev\src\simpletest\simpletest.py", line 5, in <module>
from webapp2_extras import i18n
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 676, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 1859, in load_module
return self.FindAndLoadModule(submodule, fullname, search_path)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 676, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 1723, in FindAndLoadModule
description)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 676, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 1666, in LoadModuleRestricted
description)
File "C:\Program Files (x86)\Google\google_appengine\lib\webapp2\webapp2_extras\i18n.py", line 16, in <module>
import babel
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 676, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 1859, in load_module
return self.FindAndLoadModule(submodule, fullname, search_path)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 676, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 1723, in FindAndLoadModule
description)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 676, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 1666, in LoadModuleRestricted
description)
File "C:\Users\Jinmo\dev\src\simpletest\babel\__init__.py", line 33, in <module>
from pkg_resources import get_distribution, ResolutionError
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 676, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 1859, in load_module
return self.FindAndLoadModule(submodule, fullname, search_path)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 676, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 1723, in FindAndLoadModule
description)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 676, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 1648, in LoadModuleRestricted
return source_file.load_module(submodule_fullname)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\dist\py_zipimport.py", line 246, in load_module
submodname, is_package, fullpath, source = self._get_source(fullmodname)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\dist\py_zipimport.py", line 207, in _get_source
source = self.zipfile.read(relpath.replace(os.sep, '/'))
File "C:\Program Files\Python27\lib\zipfile.py", line 869, in read
return self.open(name, "r", pwd).read()
File "C:\Program Files\Python27\lib\zipfile.py", line 884, in open
zef_file = open(self.filename, 'rb')
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 592, in __init__
raise IOError(errno.EACCES, 'file not accessible', filename)
IOError: [Errno 13] file not accessible: 'C:\\Program Files\\Python27\\lib\\site-packages\\setuptools-0.6c11-py2.7.egg'
And this is 'simepletest.py'.
import os
import logging
import webapp2
import jinja2
from webapp2_extras import i18n
jinja_environment = jinja2.Environment(
loader=jinja2.FileSystemLoader(os.path.dirname(__file__)))
class MainPage(webapp2.RequestHandler):
def get(self):
self.response.out.write('Hello, world!')
app = webapp2.WSGIApplication([('/', MainPage)],
debug=True)
def main():
logging.getLogger().setLevel(logging.DEBUG)
run_wsgi_app(app)
if __name__ == '__main__':
main()
And this is the 'app.yaml'.
application: simpletest
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /.*
script: simpletest.app
libraries:
- name: jinja2
version: latest
.
There are babel and pytz library directories in my app directory.
.
First time after starting the dev server, it's fine. I can see the my webpage well.
However, if I just put additional [enter] at simpletest.py, the error occurs.
This isn't really an answer, just another work-around.. try disabling:
C:\\Program Files\\Python27\\lib\\site-packages\\setuptools-0.6c11-py2.7.egg
rename it to something like:
setuptools-0.6c11-py2.7.egg_DISABLED
You'll need to re-enable it to install local Python packages, but, if I'm right, it will solve your issue..