Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ImportError: django.utils not found in Google app engine

I get this error when I use simplejson from django.utils in google app engine project:

Traceback (most recent call last):
  File "/base/python27_runtime/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 187, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/base/python27_runtime/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 225, in _LoadHandler
    handler = __import__(path[0])
  File "/base/data/home/apps/s~testapp/1.359839747994604729/notify.py", line 8, in <module>
    from handlers.xmpp_handler import XMPPHandler
  File "/base/data/home/apps/s~testapp/1.359839747994604729/handlers/xmpp_handler.py", line 12, in <module>
    import commands
  File "/base/data/home/apps/s~testapp/1.359839747994604729/handlers/commands.py", line 4, in <module>
    from django.utils import simplejson
ImportError: No module named django.utils

Snippet:

import datetime
from google.appengine.api import users
from google.appengine.ext import db
from django.utils import simplejson

class jsonEncoder(simplejson.JSONEncoder):
    def default(self, obj):
        if isinstance(obj, datetime.datetime):
            return obj.isoformat()

        elif isinstance(obj, db.Model):
            return dict((p, getattr(obj, p)) 
                        for p in obj.properties())

        elif isinstance(obj, users.User):
            return obj.email()

        else:
            return simplejson.JSONEncoder.default(self, obj)
like image 475
ssk Avatar asked Dec 07 '22 13:12

ssk


1 Answers

You need to specify that you want to use django in your app.yaml:

libraries:
- name: django
  version: "1.2"

See the GAE docs for the supported django versions.

On Python 2.7 runtime, you should be using python's native json library instead of simplejson though.

like image 128
zxt Avatar answered Dec 29 '22 07:12

zxt