0
votes

In my model.py, I'm importing images to generate url for pictures as below.

from google.appengine.api import images

class Picture(models.Model):
    picture_blob_key = models.TextField()

    def picture_url(self):
        return images.get_serving_url(self.picture_blob_key)

Which works fine. I'm getting the result I want. However, whenever I try to syncdb it's giving me an error:

$ python manage.py syncdb Traceback (most recent call last): File "manage.py", line 14, in execute_manager(settings) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django_1_3/django/core/management/init.py", line 438, in execute_manager utility.execute() File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django_1_3/django/core/management/init.py", line 379, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django_1_3/django/core/management/base.py", line 191, in run_from_argv self.execute(*args, **options.dict) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django_1_3/django/core/management/base.py", line 219, in execute self.validate() File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django_1_3/django/core/management/base.py", line 249, in validate num_errors = get_validation_errors(s, app) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django_1_3/django/core/management/validation.py", line 35, in get_validation_errors for (app_name, error) in get_app_errors().items(): File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django_1_3/django/db/models/loading.py", line 146, in get_app_errors self._populate() File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django_1_3/django/db/models/loading.py", line 64, in _populate self.load_app(app_name) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django_1_3/django/db/models/loading.py", line 78, in load_app models = import_module('.models', app_name) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django_1_3/django/utils/importlib.py", line 35, in import_module import(name) File "/Users/taelimoh/Dropbox/gluwa_test/society/models.py", line 10, in from google.appengine.api import images File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/images/init.py", line 48, in from google.appengine.api import blobstore File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/blobstore/init.py", line 23, in from blobstore import * File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/blobstore/blobstore.py", line 38, in from google.appengine.api import datastore File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/datastore.py", line 62, in from google.appengine.datastore import datastore_query File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/datastore/datastore_query.py", line 64, in from google.appengine.datastore import datastore_index File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/datastore/datastore_index.py", line 60, in from google.appengine.api import validation File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/validation.py", line 51, in import yaml ImportError: No module named yaml

So, for now I have to comment out GAE API import when I'm using syncdb and then bring it back in. Any comment will be appreciated.

1

1 Answers

0
votes

The error you are getting is because the import yaml failed. This library comes bundled with GAE, and whenever you launch a tool, it fixes the sys path in order to find it.

What you can do, is to manually install the yaml package.