Le Mon, 11 May 2009 21:44:09 +0100 (BST), man...@themacaque.com s'exprima ainsi:
> Hello there, > > I have just started working with python and I have some issues > understanding how I should be importing modules from packages. Curretly I > have the following tree structure: > > general/ > __init__.py > address_book.py > groups/ > __init__.py > contact_group.py > > where groups and general are in the same level and all the __init__.py > files are empty. > > In address_book.py I want to import the ContactGroup which is at > contact_group.py. I have try the following posibilities: > > from ..groups.contact_group import ContactGroup > from groups.contact_group import ContactGroups > from groups.contact_group import * > > But I cannot get it working. I know that the third option will not work > because I have not set up __all__ but I do not understand why it does not > work. I have read books and tutorials about it, but I cannot get it. > > Am I doing something wrong? I would really appreciate a hand or pointer to > s step by step example. Not sure at all, 'cause python packaging is still rather unclear for me, but I guess you should have module (or other names thingies) imported inside __init__.py; and that's precisely their main purpose (in addition to possibly running startup code). If I'm right, simply writing in groups/__init__.py import contact_group or from contact_group import ContactGroups should do the job. Actually, python does *not* automatically populate (sub-)packages' dict of names with the files in the directory (as I would also have expected). [The reason why I still do not understand what python packaging, esp. the use of __init__ files, is supposed to bring to the developper and/or the user. I've read several docs several times, but they all say the same, even using the same examples, and none points to the actual purpose. Having a 'normal' py file importing names intended to be exported would do the same job. Anyone?] Denis > Kr, > > Manuel > > _______________________________________________ > Tutor maillist - Tutor@python.org > http://mail.python.org/mailman/listinfo/tutor > ------ la vita e estrany _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor