On Sat, 21 Jul 2012 17:10:05 -0600, Bruce Sherwood
<> declaimed the following in
gmane.comp.python.general:
> Thanks, but the problem I need to solve does not permit putting a
> function like runner in the main program. I'm constrained to being
> able to handle the API of VPython (vpython.org), which lets you write
> programs like the following (call it user.py), which animates a 3D
> cube moving to the right, using OpenGL:
>
> from visual import box
> b = box()
> while True:
> b.pos.x += 0.001
Well, based on that sample, wrap THAT as "runner"
def runner():
from visual import box
b = box()
while True:
b.pos.x += 0.0001
and don't /call/ runner() until after all the main system is configured.
(And runner could, if need be, be "called" as a thread).
Not having a Mac, I can't do tests... but everything I've seen so
far comes down to NOT IMPORTING anything that tries to spawn threads
/during the import/.
A properly designed module (as I showed with my testABA.py) only
"runs" stuff if loaded as the main program; any other use (import) only
does imports and defines module level entities -- running anything is
deferred for the program that did the import to invoke AFTER the import
finished.
--
Wulfraed Dennis Lee Bieber AF6VN
HTTP://wlfraed.home.netcom.com/