[Edu-sig] PySqueak: pyGTK & Cairo & pygtkglext (OpenGL) next?

Brad Miller bmiller at luther.edu
Sat Jun 3 14:58:53 CEST 2006


 From a Mac user's perspective I think the answer is probably not.   
This approach would  put PySqueak  on a similar trajectory as vpython  
which requires us to use X11 on the mac in order to get GTK and  
friends working. Further, this arrangement forces us to make separate  
builds of python using fink or darwin ports, which in turn gives us  
two separate python installations on our Macs.

Several have tried to port vpython to a native (non-X11-dependent)   
implementation on the mac over the last few years but nobody has  
succeeded yet.  There is some work in GTK+ 2.9.x to get a native port  
of GTK working on the mac.  Maybe when this effort is finally  
successful then native versions of vpython and other packages will be  

So, personally I would be sad to see PySqueak head down this road.    
But I also think that the effort required to get everything working  
under X11 would be too difficult for many beginners.


On Jun 2, 2006, at 6:00 PM, Paul D. Fernhout wrote:

> Short version:
> Would people here be willing to install PyGTK 2.x and pygtkglext  
> (OpenGL
> on GTK) and related files on their machines *if* there was a Python- 
> based
> software package they *really* wanted to use?  Mac and Windows are of
> issue mainly, since GNU/Linux probably is probably trivial install.  
> Does
> anyone under Mac or Windows have happy experience doing that for  
> either
> PyGTK or the 3D extension pygtkglext (either in a home or a lab  
> setting
> Long version:
> While exploring the issue of restricted evaluation environments (I am
> considering having PataPata windows communicate by passing textual  
> Python
> programs :-) I came across this on Python 3.0 wish list:
>    http://wiki.python.org/moin/PythonThreeDotOh
> "Include wxPython or PyGtk in core library [for Py3K]? Would anygui  
> also
> be a good option. Place Tkinter into legacy status? (Musing again.  
> Seems
> like we need a more mainstream, higher performance standard GUI in the
> core distribution. wxPython is very popular, so I suggested it as an
> option. The PyGtk is an awesomely thin layer over the C library and it
> makes Gtk objects look like native Python classes.)"
> Now given the wx bashing lately (including from the OSI Chandler  
> project I
> linked to), and the Cairo blessing(?), that PyGTK comment got me  
> thinking.
> Also, Francois mentions somewhere he wanted to move beyond TK for  
> his work.
> Well, I just implemented a rudimentary TK proof-of-concept version of
> PataPata. And the inspector is live in the world. And I am not as
> dissatisfied with the look or performance of TK as I thought I would.
> [Though of course it still needs more work.(*)] BUT, I read that,  
> and the
> squeaky gears in my brain start creaking, thinking, "hmmm,  
> Python2.x, GTK,
> and Cairo?".
> And after a Google, this link has me pretty excited:
>   Writing a Widget Using Cairo and PyGTK 2.8
>   http://www.pygtk.org/articles/cairo-pygtk-widgets/cairo-pygtk- 
> widgets.htm
> and so I tried the file there and it ran on my Debian machine without
> needing to install anything (though I have in the past installed  
> lots of
> stuff, so I don't know about stock distributions of Debian Python, but
> clearly this support is just an apt-get away apparently, at least  
> as far
> as Cairo).
>  From the link:
> "Cairo is a powerful 2-dimensional graphics library designed to  
> support a
> number of modern graphics techniques including stroking, alpha  
> blending
> and antialiasing. It supports multiple output formats, which allows
> developers to use the same code to display graphics on the screen,  
> print
> them to the printer or accelerate them with OpenGL. As of GTK+ 2.8,  
> GTK+
> has been integrated with the Cairo 1.0 rendering library, giving
> developers access to this flexible graphics API. PyGTK added Cairo  
> support
> in the 2.8 version. See the wiki for further info."
> There is also PyGtkGLExt for Python 3D OpenGL support (though I  
> have not
> tried it):
>    http://gtkglext.sourceforge.net/
> Example Python 3D program:
>    http://mail.gnome.org/archives/gtkglext-list/2004-April/ 
> msg00012.html
> I really like the idea of using something like Cairo if it is  
> picking up
> steam (see my previous post in "Elementary Graphics Library"). And 3D
> support sounds good too (rather than the TK developers leaving  
> behind TK's
> togl :-( ). As I reflect on it, I am also willing to trade-off 90% of
> popularity for PataPata right now in terms of easy install for Mac/ 
> Windows
> *if* it would make my life under Debian easier to get something neat
> working that I and a few others want to use, and has the promise of
> picking up easy install in a couple of years (like if Python3K went  
> with
> pyGTK as a default). Plus I already have wx and tk versions, so  
> it's not
> like people could not try the basic idea on those platforms.
> The issue is more a matter of where I shoudl be putting more  
> energy, since
> if I could use GTK and Cairo and PyGtkGLExt for cross-platform  
> widgets, 2D
> graphics, and 3D graphics, then long-term it makes it easier for me to
> maintain a system using common cross-platform standards, especially
> because I don't have to put in much of an extra dumbed down
> "compatibility" layer. For example, I can just pass GTK events around
> rather than translate them to my own; I can use Cairo calls rather  
> than my
> own simplified 2D context; I can assume everyone is using the same  
> way to
> access 3D graphics rather than try to abstract initialization out;  
> and so
> on. Now, this compatibility issue is a bit more complex, because I  
> would
> like to run PataPata things as applets on Jython, but I'm not sure  
> that is
> important enough at the start to prevent using an otherwise promising
> cross-platform solution CPython works with, given that I'm not sure  
> how
> important Applets really are, and in the future there might be more
> person-power to make some GUI object wrappers that runs both on GTK  
> and Swing.
> Obviously, I could search the PyGTK and gtkglext list archives:
>    http://www.daa.com.au/mailman/listinfo/pygtk
>    http://mail.gnome.org/mailman/listinfo/gtkglext-list/
> but I was curious what people here had to say from an educator  
> context.
> There are also other cool software projects like PythonCAD that use  
> PyGTK:
>    http://www.pythoncad.org/
> It woudl be more work to switch yet again, but I find just about  
> anything
> can be made right if you are willing to start over a couple of  
> times. :-)
> Or, in short, having done the sensible thing of deciding to "Run  
> away!" to
> TK when faced with all the choices in the "Elementary graphics  
> library"
> thread, I'm wondering now whether the "Holy Hand Grenade" sacred relic
> Brother GTK Maynard from Cairo carries:
>    http://en.wikipedia.org/wiki/Holy_Hand_Grenade_of_Antioch
> could get the PataPata entourage safely past the killer rabbit of
> cross-platform issues. :-)
> I'm certainly not the only one asking that question right around now:
>    http://www.myddrin.com/trashdeerwood/index.cgi/Development/67
>    http://wiki.osafoundation.org/bin/view/Jungle/TechnologyChoices
> I've looked in the edusig list's archive and pyGTK is mentioned in  
> about
> 30 posts over about six thread. Dave Reed on 12/26/2004 05:30 PM  
> was very
> encouraging of is a year and a half ago.
>    http://mail.python.org/pipermail/edu-sig/2004-December/004302.html
> He wrote:
> "I've used it on Linux/Solaris, Windows XP and Mac OS X and it  
> works fine
> on all of them. If I was coding for Windows only, I'd probably pick a
> different widget set, but since I have little interest in programming
> for Windows right now, I think glade/gtk is a great combination."
> So it seems like by now it should be a fairly safe choice?
> So, my question to educators or parents here using Mac and Windows  
> is, are
> you willing to go to the trouble (or have you already?) to make  
> sure PyGTK
> and a >= 2.8 GTK are running on your system at school or at home *if*
> there was an application you really wanted to use? Would using PyGTK &
> PyCairo & pygtkglext be more a show stopper or an incentive? I'm not
> saying you would do it right now, just more, would you or could you  
> do it
> if you really wanted to? If so, or if there is at least a sense  
> that it is
> possible, I think I will be very tempted to (once again) make another
> version of PataPata (PySqueak) that is GTK oriented. I've never  
> tried to
> use PyGTK on the Mac or Windows, so any feedback on it's current  
> use in an
> educational context of for packages you use for other things would be
> appreciated (i.e. do you already use packages that depend on PyGTK?)
> --Paul Fernhout
> (*) The TK version still has a bug retrieving text from a multi- 
> line TK
> text box. And everything is sloppily floating around. And no save/load
> world buttons yet.
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> http://mail.python.org/mailman/listinfo/edu-sig

More information about the Edu-sig mailing list