import problems in packages

Stéphane Ninin stefnin at alussinan.org
Wed Sep 28 12:43:37 EDT 2005


  Hello all,


I have an ImportError problem, which is probably correct, 
but I do not understand it. And how to fix it...


Here is the basic structure of the code (I have reduced it first).

ROOT:
  /main.py
  /Handlers/__init__.py (empty)
  /Handlers/Handlers.py
  /Handlers/HandlerFactory.py
  /Handlers/Default/__init__.py (empty)
  /Handlers/Default/Handlers.py 
  /Handlers/Default/HandlerFactory.py

Now, for the content of the files:

ROOT/main.py contains:
def main():
    command = 'A'
    from Handlers.HandlerFactory import HandlerFactory
    handler = HandlerFactory().makeHandler(command) 

main() 


ROOT/Handlers/Handlers.py contains:

class HandlerBase(object):
    pass
 

ROOT/Handlers/HandlerFactory.py contains:

def HandlerFactory():
    import Handlers.Default.HandlerFactory
    return Handlers.Default.HandlerFactory.HandlerFactory() 


ROOT/Handlers/Default/Handlers.py contains:

from Handlers.Handlers import HandlerBase

class Handler(HandlerBase):
    pass 

and finally:

ROOT/Handlers/Default/HandlerFactory.py contains:

from Handlers.Default.Handlers import Handler

class HandlerFactory(object):

    def makeHandler(self,command):
        print 'HERE'
        return Handler()
     



... when I start main.py, I get:

Traceback (most recent call last):
  File "main.py", line 8, in ?
    main()
  File "main.py", line 5, in main
    handler = HandlerFactory().makeHandler(command)
  File "c:\ROOT\Handlers\HandlerFactory.py", line 6, in HandlerFactory
    import Handlers.Default.HandlerFactory
ImportError: No module named Default.HandlerFactory


Using a bit different structure (with relative imports), I also had an 
ImportError in ROOT/Handlers/Default/Handlers.py


I guess there is something I do not understand in the way Python looks for 
the correct file in a package... 

Can someone give me some explanations about what is happening here ?
And a way to solve that ? 

   Thanks for any help,




-- 
  Stéphane Ninin
stefnin at alussinan.org




More information about the Python-list mailing list