I tried just tacking all of my procedural wrappers on to the end of your file so there would be no transitive import. Surprisingly, that didn't work. The trick you mention below DOES work, and I'll use that as a workaround.
A clue, then: it's not the transitive importing that causes the problem, it's the importing of a file that calls GraphWin(). Peter Drake Assistant Professor of Computer Science Lewis & Clark College http://www.lclark.edu/~drake/ On Feb 9, 2007, at 1:09 PM, John Zelle wrote: > Peter, > > I should have caught this when you posted your file. There is a > bizarre import > interaction that I am aware of, but can't say that I fully understand > regarding my graphics library. It seems that Python imports are in > some-way, > somewhat atomic, and with the way my graphics library is set up > this can > produce this deadlock. I have a workaround for you. Move the > graphics setup > code in your module into a function: > > def initGraphics(): > global root > root = z.GraphWin() > > print "If you can't see the graphics window," > print "it's probably at the upper left" > print "of your screen, behind this one." > > Then call this function once at the start of your graphics > programs. This is > what will now pop up the window. So your "junk" program becomes: > > from graphics2 import * > print "imported graphics2" > initGraphics() > background("red") > > If someone has a better understanding of Python module imports and > why that > causes a problem with my graphics package, I'd love to know how to > fix this > problem rather than working around it. > > --John > > > On Friday 09 February 2007 1:36 pm, Peter Drake wrote: >> The graphics2.py file I supplied earlier (http://www.lclark.edu/ >> ~drake/courses/cs0/graphics2.py) is a procedural front-end for >> Zelle's graphics.py. >> >> If I run the graphics2.py module, everything works fine, and I can >> issue commands interactively. >> >> A problem happens if I write ANOTHER program, say junk.py: >> >> from graphics2 import * >> print "imported graphics2" >> background("red") >> >> When I run this (within IDLE), it hangs trying to import graphics2. >> There is no error message or processor load, it just hangs. >> >> Can anyone explain (or reproduce) this behavior? >> >> Peter Drake >> Assistant Professor of Computer Science >> Lewis & Clark College >> http://www.lclark.edu/~drake/ >> >> >> >> _______________________________________________ >> Edu-sig mailing list >> [email protected] >> http://mail.python.org/mailman/listinfo/edu-sig > > -- > John M. Zelle, Ph.D. Wartburg College > Professor of Computer Science Waverly, IA > [EMAIL PROTECTED] (319) 352-8360 > _______________________________________________ > Edu-sig mailing list > [email protected] > http://mail.python.org/mailman/listinfo/edu-sig _______________________________________________ Edu-sig mailing list [email protected] http://mail.python.org/mailman/listinfo/edu-sig
