Question

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.

Was it helpful?

Solution

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..

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top