package import dangers
Diez B. Roggisch
deets at nospam.web.de
Tue Oct 6 18:42:16 CEST 2009
Ethan Furman wrote:
> I'm working on a package with multiple modules (and possibly packages),
> and I would like to do it correctly. :)
> I have read of references to possible issues regarding a module being
> imported (and run) more than once, but I haven't been able to find
> actual examples of such failing code.
> My google search was fruitless (although still educational !-), so if
> anyone could point me in the right direction I would greatly appreciate
The most common problem is that a file is used as module and as executable
at the same time.
--- test.py ---
if __name__ == "__main__":
assert Foo is test.Foo
This will fail when executed from the commandline because the module is
known twice - once as "__main__", once as "test".
So keep your startup-scripts trivial, or don't ever import from them.
You might create similar situations when modifying sys.path to reach *into*
a package - but that would be sick to do anyway.
Other than that, I'm not aware of any issues.
More information about the Python-list