Search code examples
pythondjangodjango-nonrel

Django nonrel development server doesn't import amazon.api


I have a weird problem with Django nonrel's development server:

I have installed Amazon Simple Product API , and it works fine in the shell, I can import it there, and everything else seems to work fine. But when I try to import it into my website I get this:

ImportError at /
No module named amazon.apiRequest Method:   GET
Request URL:    http://127.0.0.1:8000/
Django Version: 1.3
Exception Type: ImportError
Exception Value:    No module named amazon.api
Exception Location: /Users/Paulius/Desktop/Django-nonrel/projects/sort/phone/functions.py in <module>, line 3
Python Executable:  /opt/local/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
Python Version: 2.7.2
Python Path:    ['/Users/Paulius/Desktop/Django-nonrel/projects/sort',
 '/Users/Paulius/Desktop/Django-nonrel/projects/sort/djangoappengine/lib',
 '/usr/local/google_appengine',
 '/usr/local/google_appengine/lib/antlr3',
 '/usr/local/google_appengine/lib/enum',
 '/usr/local/google_appengine/lib/fancy_urllib',
 '/usr/local/google_appengine/lib/graphy',
 '/usr/local/google_appengine/lib/grizzled',
 '/usr/local/google_appengine/lib/httplib2',
 '/usr/local/google_appengine/lib/ipaddr',
 '/usr/local/google_appengine/lib/jinja2',
 '/usr/local/google_appengine/lib/markupsafe',
 '/usr/local/google_appengine/lib/oauth2',
 '/usr/local/google_appengine/lib/prettytable',
 '/usr/local/google_appengine/lib/protorpc',
 '/usr/local/google_appengine/lib/simplejson',
 '/usr/local/google_appengine/lib/sqlcmd',
 '/usr/local/google_appengine/lib/webapp2',
 '/usr/local/google_appengine/lib/webob',
 '/usr/local/google_appengine/lib/yaml/lib',
 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django_cms-2.2-py2.7.egg',
 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django_sekizai-0.5-py2.7.egg',
 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django_mptt-0.5.2-py2.7.egg',
 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/html5lib-0.95-py2.7.egg',
 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/South-0.7.4-py2.7.egg',
 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django_classy_tags-0.3.4.1-py2.7.egg',
 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django_floppyforms-0.4.7-py2.7.egg',
 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pygeoip-0.2.3-py2.7.egg',
 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/six-1.1.0-py2.7.egg',
 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/distribute-0.6.27-py2.7.egg',
 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/bottlenose-0.4.0-py2.7.egg',
 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/python_amazon_simple_product_api-1.1.0-py2.7.egg',
 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages',
 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PIL']
Server time:    Tue, 17 Jul 2012 18:11:04 +0000

I'm using the same python version to run both the server and the shell, and I have no idea what's wrong.

Traceback:

Environment:


Request Method: GET
Request URL: http://127.0.0.1:8000/

Django Version: 1.3
Python Version: 2.7.2
Installed Applications:
['django.contrib.contenttypes',
 'django.contrib.auth',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.admin',
 'phone',
 'django.contrib.admindocs',
 'djangotoolbox',
 'autoload',
 'dbindexer',
 'djangoappengine']
Installed Middleware:
('autoload.middleware.AutoloadMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware')


Traceback:
File "/Users/Paulius/Desktop/Django-nonrel/projects/sort/django/core/handlers/base.py" in get_response
  101.                             request.path_info)
File "/Users/Paulius/Desktop/Django-nonrel/projects/sort/django/core/urlresolvers.py" in resolve
  250.             for pattern in self.url_patterns:
File "/Users/Paulius/Desktop/Django-nonrel/projects/sort/django/core/urlresolvers.py" in _get_url_patterns
  279.         patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/Users/Paulius/Desktop/Django-nonrel/projects/sort/django/core/urlresolvers.py" in _get_urlconf_module
  274.             self._urlconf_module = import_module(self.urlconf_name)
File "/Users/Paulius/Desktop/Django-nonrel/projects/sort/django/utils/importlib.py" in import_module
  35.     __import__(name)
File "/usr/local/google_appengine/google/appengine/tools/dev_appserver_import_hook.py" in Decorate
  676.       return func(self, *args, **kwargs)
File "/usr/local/google_appengine/google/appengine/tools/dev_appserver_import_hook.py" in load_module
  1845.     return self.FindAndLoadModule(submodule, fullname, search_path)
File "/usr/local/google_appengine/google/appengine/tools/dev_appserver_import_hook.py" in Decorate
  676.       return func(self, *args, **kwargs)
File "/usr/local/google_appengine/google/appengine/tools/dev_appserver_import_hook.py" in FindAndLoadModule
  1717.                                          description)
File "/usr/local/google_appengine/google/appengine/tools/dev_appserver_import_hook.py" in Decorate
  676.       return func(self, *args, **kwargs)
File "/usr/local/google_appengine/google/appengine/tools/dev_appserver_import_hook.py" in LoadModuleRestricted
  1660.                                      description)
File "/Users/Paulius/Desktop/Django-nonrel/projects/sort/urls.py" in <module>
  2. from phone.views import *
File "/usr/local/google_appengine/google/appengine/tools/dev_appserver_import_hook.py" in Decorate
  676.       return func(self, *args, **kwargs)
File "/usr/local/google_appengine/google/appengine/tools/dev_appserver_import_hook.py" in load_module
  1845.     return self.FindAndLoadModule(submodule, fullname, search_path)
File "/usr/local/google_appengine/google/appengine/tools/dev_appserver_import_hook.py" in Decorate
  676.       return func(self, *args, **kwargs)
File "/usr/local/google_appengine/google/appengine/tools/dev_appserver_import_hook.py" in FindAndLoadModule
  1717.                                          description)
File "/usr/local/google_appengine/google/appengine/tools/dev_appserver_import_hook.py" in Decorate
  676.       return func(self, *args, **kwargs)
File "/usr/local/google_appengine/google/appengine/tools/dev_appserver_import_hook.py" in LoadModuleRestricted
  1660.                                      description)
File "/Users/Paulius/Desktop/Django-nonrel/projects/sort/phone/views.py" in <module>
  9. from functions import *
File "/usr/local/google_appengine/google/appengine/tools/dev_appserver_import_hook.py" in Decorate
  676.       return func(self, *args, **kwargs)
File "/usr/local/google_appengine/google/appengine/tools/dev_appserver_import_hook.py" in load_module
  1845.     return self.FindAndLoadModule(submodule, fullname, search_path)
File "/usr/local/google_appengine/google/appengine/tools/dev_appserver_import_hook.py" in Decorate
  676.       return func(self, *args, **kwargs)
File "/usr/local/google_appengine/google/appengine/tools/dev_appserver_import_hook.py" in FindAndLoadModule
  1717.                                          description)
File "/usr/local/google_appengine/google/appengine/tools/dev_appserver_import_hook.py" in Decorate
  676.       return func(self, *args, **kwargs)
File "/usr/local/google_appengine/google/appengine/tools/dev_appserver_import_hook.py" in LoadModuleRestricted
  1660.                                      description)
File "/Users/Paulius/Desktop/Django-nonrel/projects/sort/phone/functions.py" in <module>
  3. from amazon.api import AmazonAPI

Exception Type: ImportError at /
Exception Value: No module named amazon.api

Solution

  • dev_appserever modifies the environment so you don't include libraries in a way that won't be available when you deploy your project onto App Engine.

    You'll have to put the library in your actual project folder, or at least softlink to it from within your project folder.