1
votes

i've just approached Google App Engine. I've joined a project without having a clue about how it work so i'm sorry if this question looks dumb.

My problem is that looking at the log, it says it cannot import ndb. I've looked up for that a bit and discovered this should be present by default in version 1.6.4 of the google app engine.

I've tried to import it from console and it doesn't work either. My installation of python and google app engine are clean, i did both today.

What should i do?

I'm working on windows with python 2.7 and google app engine 1.6.4.

This is the line of code giving me problems:

from wtforms.ext.appengine.ndb import model_form

Here is the error:

INFO 2012-04-10 19:44:34,582 dev_appserver.py:2884] "GET / HTTP/1.1" 500 - ERROR 2012-04-10 19:47:05,239 wsgi.py:189] Traceback (most recent call last): File "C:\Program Files (x86)\Google\google_appengine\google\appengine\runtime\wsgi.py", line 187, in Handle handler = _config_handle.add_wsgi_middleware(self._LoadHandler()) File "C:\Program Files (x86)\Google\google_appengine\google\appengine\runtime\wsgi.py", line 236, in _LoadHandler import(cumulative_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 1850, 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 1722, 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 1665, in LoadModuleRestricted description) File "C:\Users\chobeat\workspace\pappa Mi\py\main.py", line 38, in from py.comments import * 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 1850, 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 1722, 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 1665, in LoadModuleRestricted description) File "C:\Users\chobeat\workspace\pappa Mi\py\comments.py", line 20, in from py.form import IspezioneForm, NonconformitaForm, DietaForm, NotaForm 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 1850, 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 1722, 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 1665, in LoadModuleRestricted description) File "C:\Users\chobeat\workspace\pappa Mi\py\form.py", line 6, in from wtforms.ext.appengine.ndb import model_form ImportError: No module named ndb

2
You need to show us the stacktrace from the log - don't make us guess what you're seeing there.Nick Johnson

2 Answers

3
votes

You need to import it like this:

from google.appengine.ext import ndb

If you just say import ndb you are missing out on some import path information. Don't be afraid to copy the code that is having trouble into your question. Often, that will provide the vital clue.

UPDATE: WTForms is not included as part of the AppEngine SDK. You'll need to install it on your system.

0
votes
from wtforms.ext.appengine.ndb import model_form

can't work. wtforms does not have a ndb package. it should be:

from wtforms.ext.appengine.db import model_form