Using Tcl extensions with Python?

Guilherme Polo ggpolo at gmail.com
Fri Jul 18 00:18:29 CEST 2008


On Thu, Jul 17, 2008 at 6:48 PM, C Martin <g.threepwood at gmail.com> wrote:
> How do you setup a Tcl extension to be accessible through Python? I
> understand that I'll have to use native Tcl calls to use it (tk.call()
> etc), but I can't figure out where to put the files or how to
> initialize them so I can call them.
>
> The package I would like to use is TkPNG: http://www.muonics.com/FreeStuff/TkPNG/
>

You can put them anywhere, but if it is on tcl's auto_path then you
just need a call to "package require tkpng". To check what directories
are part of auto_path, start tclsh and enter "set auto_path".

Follows a sample code to demonstrate how to load the required package:

import Tkinter

root = Tkinter.Tk()
tkpnglib = "/usr/lib/tkpng0.9"
root.tk.eval("""
    global auto_path
    lappend auto_path {%s}""" % tkpnglib)

root.tk.eval("package require tkpng")

If tkpng were installed in some directory belonging to auto_path, then
you wouldn't need that call to tk.eval.

And.. for tkpng specifically, you won't need tk.call to use it, you
just need to create your images using Tkinter.PhotoImage with a "png"
type.

> Thanks.
> --
> http://mail.python.org/mailman/listinfo/python-list
>



-- 
-- Guilherme H. Polo Goncalves



More information about the Python-list mailing list