On 07/21/2012 04:36 PM, Bruce Sherwood wrote: > Thanks much for this clear statement. I hadn't managed to find any > documentation on this specific issue. > > Bruce Sherwood > > On Sat, Jul 21, 2012 at 10:26 AM, Dave Angel <d...@davea.name> wrote: >> Two of the things you mustn't do during an import: >> >> 1) start or end any threads >> 2) import something that's already in the chain of pending imports. >> (otherwise known as recursive imports, or import loop). And there's a >> special whammy reserved for those who import the script as though it >> were a module. >> >> Like any rule, there are possible exceptions. But you're much better >> off factoring your code better. >> >> I haven't managed to understand your software description, so i'm not >> making a specific suggestion. But I know others have pointed out that >> you should do as little as possible in top-level code of an imported >> module. Make the work happen in a function, and call that function from >> the original script, not from inside some import. An imported module's >> top-level code should do nothing more complex than initialize module >> constants. >> >> >> -- >> >> DaveA >> >>
(You top-posted, which makes it harder to figure out who said what.) For docs on the threading thing, see: http://docs.python.org/library/threading.html " ... an import should not have the side effect of spawning a new thread and then waiting for that thread in any way..." -- DaveA -- http://mail.python.org/mailman/listinfo/python-list