S
Stéphane Ninin
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,
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,