On Tue, May 26, 2009 at 4:11 AM, spir <denis.s...@free.fr> wrote: > Hello, > > In the case of such a dir structure: > > /pack > __init__.py > (modules) > /pack1 > __init__.py > modules > > are the following imports synonyms: > 1- import pack.pack1 > 2- from pack import pack1 > ? > > If yes, is there a reason for this? > > Also, there is something I find weird: > > * Using idiom 1, pack1 is only known as the compound name "pack.pack1": I > cannot eg "print pack1". Consistently, to import a module, I need "from > pack.pack1 import mod". > > * Using idiom 2, pack1 is known as "pack1" alone: I can "print pack1", which > outputs "<module 'pack.pack1' from > '/home/spir/prog/python/pack/pack1/__init__.pyc'>".
That is the difference between the two styles of import - the name under which the module is imported. > But for further imports, I still need to use the compound name "pack.pack1": > "from pack1 import mod" raises "ImportError: No module named pack1", while > python has just accepted to print pack1! Yes. The import statement is not taking a module as the first argument, it takes a name. For example in 'from pack import pack1', 'pack' does not have to be a name that is currently in scope. Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor