My favorites | Sign in
Project Logo
                
New issue | Search
for
| Advanced search | Search tips
Issue 6: WebOb can't be found if it was installed in site-packages
1 person starred this issue and may be notified of changes. Back to list
Status:  Fixed
Owner:  jpellerin
Closed:  Apr 2008
Type-Defect
Priority-Medium
Milestone-Release0.1.3


Sign in to add a comment
 
Reported by kumar.mcmillan, Apr 21, 2008
What steps will reproduce the problem?
1. easy_install WebOb
2. run a test suite --with-gae

What is the expected output? What do you see instead?

you get an error "module webob does not exist."  This is because "import
webob" was pre-loaded by noseGAE but its loaded path was in site-packages
so it gets ignored in the restricted import hook later.

I think this would be a typical problem because if you install WebTest with
easy_install it will install WebOb by default.  I was able to fix it by
deleting my global WebOb egg.

This was all using revision 25 (0.1.3a)
Comment 1 by jpellerin, Apr 22, 2008
I can't reproduce this. I have webob installed in site packages via easy_install, and
I don't have any problems importing webtest or webob in test modules.

Does the nosegae self test pass for you? How about nosetests -v --with-gae in
support/helloworld?
Comment 2 by jpellerin, Apr 22, 2008
(No comment was entered for this change.)
Owner: jpellerin
Comment 3 by kumar.mcmillan, Apr 22, 2008
yeah, still seems to be happening on my end.  Here's the exact error I get when
running tests in support/helloworld


Traceback (most recent call last):
  File
"/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/nose-0.10.1-py2.5.egg/nose/loader.py",
line 364, in loadTestsFromName
    addr.filename, addr.module)
  File
"/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/nose-0.10.1-py2.5.egg/nose/importer.py",
line 39, in importFromPath
    return self.importFromDir(dir_path, fqname)
  File
"/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/nose-0.10.1-py2.5.egg/nose/importer.py",
line 84, in importFromDir
    mod = load_module(part_fqname, fh, filename, desc)
  File "/Users/kumar/src/nose-gae/support/helloworld/test.py", line 2, in <module>
    from helloworld import application
  File "/Users/kumar/src/nose-gae/nosegae.py", line 162, in load_module
    return super(HookMixin, self).load_module(fullname)
  File "/usr/local/google_appengine/google/appengine/tools/dev_appserver.py", line
806, in decorate
    return func(self, *args, **kwargs)
  File "/usr/local/google_appengine/google/appengine/tools/dev_appserver.py", line
1325, in load_module
    return self.FindAndLoadModule(submodule, fullname, search_path)
  File "/usr/local/google_appengine/google/appengine/tools/dev_appserver.py", line
806, in decorate
    return func(self, *args, **kwargs)
  File "/usr/local/google_appengine/google/appengine/tools/dev_appserver.py", line
1234, in FindAndLoadModule
    description)
  File "/usr/local/google_appengine/google/appengine/tools/dev_appserver.py", line
806, in decorate
    return func(self, *args, **kwargs)
  File "/usr/local/google_appengine/google/appengine/tools/dev_appserver.py", line
1184, in LoadModuleRestricted
    description)
  File "/Users/kumar/src/nose-gae/support/helloworld/helloworld.py", line 2, in <module>
    from google.appengine.ext import webapp
  File "/Users/kumar/src/nose-gae/nosegae.py", line 162, in load_module
    return super(HookMixin, self).load_module(fullname)
  File "/usr/local/google_appengine/google/appengine/tools/dev_appserver.py", line
806, in decorate
    return func(self, *args, **kwargs)
  File "/usr/local/google_appengine/google/appengine/tools/dev_appserver.py", line
1325, in load_module
    return self.FindAndLoadModule(submodule, fullname, search_path)
  File "/usr/local/google_appengine/google/appengine/tools/dev_appserver.py", line
806, in decorate
    return func(self, *args, **kwargs)
  File "/usr/local/google_appengine/google/appengine/tools/dev_appserver.py", line
1234, in FindAndLoadModule
    description)
  File "/usr/local/google_appengine/google/appengine/tools/dev_appserver.py", line
806, in decorate
    return func(self, *args, **kwargs)
  File "/usr/local/google_appengine/google/appengine/tools/dev_appserver.py", line
1184, in LoadModuleRestricted
    description)
  File "/usr/local/google_appengine/google/appengine/ext/webapp/__init__.py", line
68, in <module>
    import webob
ImportError: No module named webob


if I remove
/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/WebOb-0.9.1-py2.5.egg
then it works

I'm surprised you aren't getting the same error because when I print out the
sys.path, I can see the problem.  All the GAE libs are getting appended when they
probably should be prepended.

Here is a patch that fixes it for me
nose-gae-force-path.patch
483 bytes Download
Comment 4 by jpellerin, Apr 23, 2008
Patch applied in r28. Thanks!
Status: Fixed
Labels: Milestone-Release0.1.3
Sign in to add a comment

Hosted by Google Code