TkAgg init problem in matplotlib-0.53

As JDH suggested, -L/usr/X11R6/lib -lX11 -lXaw sounds like a

    > good idea. It's possible that Tk and Tcl will need
    > something similar. Have you tried anything like this yet?

Gerry, could you run this script and post the results?

import sys, os
class FoundTclTk:
    pass

def find_tcltk():
    """Finds Tcl/Tk includes/libraries/version by interrogating Tkinter."""
    try:
  import Tkinter
    except:
  print "Tkinter not properly installed\n"
  sys.exit(1)
    if Tkinter.TkVersion < 8.3:
  print "Tcl/Tk v8.3 or later required\n"
  sys.exit(1)
    o = FoundTclTk()
    try:
  tk=Tkinter.Tk()
    except Tkinter.TclError:
  print "Using default library and include directories for Tcl and Tk because a"
  print "Tk window failed to open. You may need to define DISPLAY for Tk to work"
  print "so that setup can determine where your libraries are located."
  o.tcl_lib = "/usr/local/lib"
  o.tcl_inc = "/usr/local/include"
  o.tk_lib = "/usr/local/lib"
  o.tkv = ""
    else:
  tk.withdraw()
  o.tcl_lib = os.path.join((tk.getvar('tcl_library')), '../')

  o.tk_lib = os.path.join((tk.getvar('tk_library')), '../')
  o.tcl_inc = os.path.join((tk.getvar('tcl_library')), '../../include')
  o.tkv = str(Tkinter.TkVersion)[:3]
        if not os.path.exists(o.tcl_inc):
            o.tcl_inc = os.path.join((tk.getvar('tcl_library')), '../../include/tcl'+o.tkv)
        if not os.path.exists(o.tcl_inc):
            print 'cannot find tcl/tk headers. giving up.'
            sys.exit()

    return o

o = find_tcltk()
print 'system', sys.platform
print 'tcl include:', o.tcl_inc, os.path.exists(o.tcl_inc)
print 'tcl lib:', o.tcl_lib, os.path.exists(o.tcl_lib)
print 'tcl version:', 'tk'+o.tkv

John,

Here's the results of find_tcltk:

light:> python find_tcl.py
system linux2
tcl include: /d2/gerry/local/ActivePython-2.3/lib/tcl8.4/../../include True
tcl lib: /d2/gerry/local/ActivePython-2.3/lib/tcl8.4/../ True
tcl version: tk8.4

--Gerry

John Hunter wrote:

···

"Todd" == Todd Miller <jmiller@...86...> writes:
           
   > As JDH suggested, -L/usr/X11R6/lib -lX11 -lXaw sounds like a
   > good idea. It's possible that Tk and Tcl will need
   > something similar. Have you tried anything like this yet?

Gerry, could you run this script and post the results?

import sys, os
class FoundTclTk:
   pass

def find_tcltk():
   """Finds Tcl/Tk includes/libraries/version by interrogating Tkinter."""
   try:
import Tkinter
   except:
print "Tkinter not properly installed\n"
sys.exit(1)
   if Tkinter.TkVersion < 8.3:
print "Tcl/Tk v8.3 or later required\n"
sys.exit(1)
   o = FoundTclTk()
   try:
tk=Tkinter.Tk()
   except Tkinter.TclError:
print "Using default library and include directories for Tcl and Tk because a"
print "Tk window failed to open. You may need to define DISPLAY for Tk to work"
print "so that setup can determine where your libraries are located."
o.tcl_lib = "/usr/local/lib"
o.tcl_inc = "/usr/local/include"
o.tk_lib = "/usr/local/lib"
o.tkv = ""
   else:
tk.withdraw()
o.tcl_lib = os.path.join((tk.getvar('tcl_library')), '../')

o.tk_lib = os.path.join((tk.getvar('tk_library')), '../')
o.tcl_inc = os.path.join((tk.getvar('tcl_library')), '../../include')
o.tkv = str(Tkinter.TkVersion)[:3]
       if not os.path.exists(o.tcl_inc):
           o.tcl_inc = os.path.join((tk.getvar('tcl_library')), '../../include/tcl'+o.tkv) if not os.path.exists(o.tcl_inc):
           print 'cannot find tcl/tk headers. giving up.'
           sys.exit()

   return o

o = find_tcltk()
print 'system', sys.platform
print 'tcl include:', o.tcl_inc, os.path.exists(o.tcl_inc)
print 'tcl lib:', o.tcl_lib, os.path.exists(o.tcl_lib)
print 'tcl version:', 'tk'+o.tkv