Import graphics error

Steven D'Aprano steve at pearwood.info
Tue Apr 5 22:15:59 EDT 2016


Since Dennis has X-No-Archive set on his posts, his very useful answer to
Nicolae will be lost in a matter of days.

So I'm going to repeat it.

Nicolae, Dennis found the fix is to change the example code. 

Read the documentation here:

http://mcsp.wartburg.edu/zelle/python/graphics/graphics.pdf

Download and install this file:

http://mcsp.wartburg.edu/zelle/python/graphics.py

Change the example to this:


import graphics as g
win = g.GraphWin()
rect = g.Rectangle(g.Point(5, 10), g.Point(20, 30))
rect.draw(win)
win.getMouse()


which should run now. Thanks Dennis for your hard work identifying this!


Dennis has more comments as well which you should read, quoted below.


On Wed, 6 Apr 2016 12:01 pm, Dennis Lee Bieber wrote:

> On Tue, 5 Apr 2016 17:17:54 +0100, Nicolae Morkov
> <morkovnicolae at gmail.com> declaimed the following:
> 
>>I copied the code from Python from everyone page 67.....
> 
> Which edition? There is now a second edition out (and I don't intend to
> pay $70 for it just to assist a simple question)
> 
>>Following the instructions The graphic modules by John Zelle I copied 
>>into the python lacation ,to be easier to find the path .....
>>
> Which version? Did you also download the documentation (it runs around
> 6 pages) for the library. The odds are very good that the library (v4 as I
> recall) may have changed a lot from when a 1st edition book was written.
> 
> Just downloaded
> http://mcsp.wartburg.edu/zelle/python/graphics.py
> and copied it into my Python installation Lib\site-packages directory
> (actually -- all four, since I have Python 2.7 and [old] 3.3 in both 32
> and 64 bit variants on the machine).
> 
> Using
> http://mcsp.wartburg.edu/zelle/python/graphics/graphics.pdf
> as a guide, I converted your example into
> 
> -=-=-=-
> 
> import graphics as g
> 
> win = g.GraphWin()
> rect = g.Rectangle(g.Point(5, 10), g.Point(20, 30))
> rect.draw(win)
> win.getMouse()
> -=-=-=-
> 
> It runs!
> 
> Note that the current version of that library is fully object-based --
> the rectange is defined by two corners which are represented by a pair of
> Point objects -- and after the rectangle object has been created, one has
> to tell /it/ to draw itself on the specified window. The getMouse() call
> holds the program until you click the mouse in the window (technically it
> returns a Point with the coordinates, but I'm throwing it away)




-- 
Steven




More information about the Python-list mailing list