Matplotlib in Cygwin

Has anyone had any luck compiling Matplotlib using cygwin?
Out of the box I get the following: (I have numpy, tcl/tk and libpng1.2 installed)

~/matpl/matplotlib-0.98.3$ python setup.py build

···

============================================================================

BUILDING MATPLOTLIB
matplotlib: 0.98.3
python: 2.5.1 (r251:54863, May 18 2007, 16:56:43) [GCC
3.4.4 (cygming special, gdc 0.12, using dmd 0.125)]
platform: cygwin

REQUIRED DEPENDENCIES
numpy: 1.2.0
freetype2: 9.18.3

OPTIONAL BACKEND DEPENDENCIES
libpng: found, but unknown version (no pkg-config)
* Could not find ‘libpng’ headers in any of

                    * '/usr/include', '.'

Traceback (most recent call last):
File “setup.py”, line 125, in
if check_for_tk() or (options[‘build_tkagg’] is True):

File “/cygdrive/c/linuxshare/matpl/matplotlib-0.98.3/setupext.py”, line 841, in check_for_tk
explanation = add_tk_flags(module)
File “/cygdrive/c/linuxshare/matpl/matplotlib-0.98.3/setupext.py”, line 1084, in add_tk_flags

result = parse_tcl_config(tcl_lib_dir, tk_lib_dir)

File “/cygdrive/c/linuxshare/matpl/matplotlib-0.98.3/setupext.py”, line 946, in parse_tcl_config
tk_lib = tk_vars.get(“default”, “TK_LIB_SPEC”)[1:-1].split()[0][2:]

IndexError: list index out of range

Any help or ideas appreciated!
Thanks,
Pete

Has anyone had any luck compiling Matplotlib using cygwin?
Out of the box I get the following: (I have numpy, tcl/tk and libpng1.2
installed)

~/matpl/matplotlib-0.98.3$ python setup.py build

BUILDING MATPLOTLIB
            matplotlib: 0.98.3
                python: 2.5.1 (r251:54863, May 18 2007, 16:56:43) [GCC
                        3.4.4 (cygming special, gdc 0.12, using dmd 0.125)]
              platform: cygwin

REQUIRED DEPENDENCIES
                 numpy: 1.2.0
             freetype2: 9.18.3

OPTIONAL BACKEND DEPENDENCIES
                libpng: found, but unknown version (no pkg-config)
                        * Could not find 'libpng' headers in any of
                        * '/usr/include', '.'
Traceback (most recent call last):
  File "setup.py", line 125, in <module>
    if check_for_tk() or (options['build_tkagg'] is True):
  File "/cygdrive/c/linuxshare/matpl/matplotlib-0.98.3/setupext.py", line
841, in check_for_tk
    explanation = add_tk_flags(module)
  File "/cygdrive/c/linuxshare/matpl/matplotlib-0.98.3/setupext.py", line
1084, in add_tk_flags
    result = parse_tcl_config(tcl_lib_dir, tk_lib_dir)
  File "/cygdrive/c/linuxshare/matpl/matplotlib-0.98.3/setupext.py", line
946, in parse_tcl_config
    tk_lib = tk_vars.get("default", "TK_LIB_SPEC")[1:-1].split()[0][2:]
IndexError: list index out of range

This is probably something you will have to debug yourself, since it
is dependent on the TK you have installed on your system, but it is
fairly easy to do. Edit setupext.py, store the results of

  tmp = tk_vars.get("default", "TK_LIB_SPEC")[1:-1].split()
  print tmp

and see what is returned. The setup code is trying to index into
this data structure, and what is coming back is not what is expected.
It would be helpful to see what is coming back.

Note this call happens in a large try except block, so you could add
your exception (IndexError) to the list of exceptions that are caught,
which will return None from this function. This will keep your build
from crashing. Alternatively, if you know you want some backend like
gtkagg or wxagg and don't need tkagg, you can turn this off by copying
setup.cfg.template to setup.cfg and manually customizing the backends
which are built.

But the ideal will be to fix the tk config bug and send us a patch .

JDH

···

On Mon, Oct 20, 2008 at 6:33 AM, Pete <sneakypete81@...287...> wrote:

Any help or ideas appreciated!
Thanks,
Pete

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great
prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

2008/10/20 John Hunter <jdh2358@…287…>

This is probably something you will have to debug yourself, since it

is dependent on the TK you have installed on your system, but it is

fairly easy to do. Edit setupext.py, store the results of

tmp = tk_vars.get(“default”, “TK_LIB_SPEC”)[1:-1].split()

print tmp

and see what is returned. The setup code is trying to index into

this data structure, and what is coming back is not what is expected.

It would be helpful to see what is coming back.

Note this call happens in a large try except block, so you could add

your exception (IndexError) to the list of exceptions that are caught,

which will return None from this function. This will keep your build

from crashing. Alternatively, if you know you want some backend like

gtkagg or wxagg and don’t need tkagg, you can turn this off by copying

setup.cfg.template to setup.cfg and manually customizing the backends

which are built.

But the ideal will be to fix the tk config bug and send us a patch .

JDH

Hi John,

Thanks - that’s a help. TK_LIB_SPEC is apparently empty - tk_vars.get(“default”, “TK_LIB_SPEC”) returns ‘’. See attached patch for an attempt to manage this condition.

This brings me on to my next problem… here’s the result of the patched script. is this new error likely to be connected with the above issue?
(I’m using an up-to-date cygwin installation)

~/matpl/svn/matplotlib$ python setup.py build

setupext_empty_tk_lib_fix.patch (719 Bytes)

···

============================================================================

BUILDING MATPLOTLIB
matplotlib: 0.98.3
python: 2.5.1 (r251:54863, May 18 2007, 16:56:43) [GCC
3.4.4 (cygming special, gdc 0.12, using dmd 0.125)]
platform: cygwin

REQUIRED DEPENDENCIES
numpy: 1.2.0
freetype2: 9.18.3

OPTIONAL BACKEND DEPENDENCIES
libpng: found, but unknown version (no pkg-config)
* Could not find ‘libpng’ headers in any of

                    * '/usr/include', '.'
           Tkinter: Tkinter: 50704, Tk: 8.4, Tcl: 8.4
                    * Guessing the library and include directories for
                    * Tcl and Tk because the tclConfig.sh and

                    * tkConfig.sh could not be found and/or parsed.
          wxPython: no
                    * wxPython not found
              Gtk+: no
                    * Building for Gtk+ requires pygtk; you must be able

                    * to "import gtk" in your build/install environment
                Qt: no
               Qt4: no
             Cairo: no

OPTIONAL DATE/TIMEZONE DEPENDENCIES

          datetime: present, version unknown
          dateutil: matplotlib will provide
              pytz: matplotlib will provide

adding pytz

OPTIONAL USETEX DEPENDENCIES
dvipng: no

       ghostscript: /bin/sh: gs: command not found
             latex: no
           pdftops: 3.02

EXPERIMENTAL CONFIG PACKAGE DEPENDENCIES
configobj: matplotlib will provide
enthought.traits: no

[Edit setup.cfg to suppress the above messages]

pymods [‘pylab’, ‘configobj’]
packages [‘matplotlib’, ‘matplotlib.backends’, ‘matplotlib.projections’, ‘mpl_toolkits’, ‘matplotlib.numerix’, ‘matplotlib.numerix.mlab’, ‘matplotlib.numerix.ma’, ‘matplotlib.numerix.npyma’, ‘matplotlib.numerix.linear_algebra’, ‘matplotlib.numerix.random_array’, ‘matplotlib.numerix.fft’, ‘matplotlib.delaunay’, ‘pytz’, ‘dateutil’, ‘dateutil/zoneinfo’, ‘matplotlib.config’]

running build
running build_py
creating build


running build_ext
building ‘matplotlib.ft2font’ extension
creating build/temp.cygwin-1.5.25-i686-2.5
creating build/temp.cygwin-1.5.25-i686-2.5/src

creating build/temp.cygwin-1.5.25-i686-2.5/CXX
gcc -fno-strict-aliasing -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -I/usr/lib/python2.5/site-packages/numpy-1.2.0-py2.5-cygwin-1.5.25-i686.egg/numpy/core/include -I/usr/include/freetype2 -I/usr/include -I. -I/usr/include/python2.5 -c src/ft2font.cpp -o build/temp.cygwin-1.5.25-i686-2.5/src/ft2font.o

Unable to free colormap, palette is still selected.
gcc: fork: Resource temporarily unavailable
error: command ‘gcc’ failed with exit status 1

It is unrelated, and I haven't seen it personally, but a quick google for

  gcc freetype2 Unable to free colormap, palette is still selected.

revealed

  http://cygwin.com/ml/cygwin/2007-10/msg00634.html

which may be of some help. Check the other google search results and
let us know what you find.

JDH

···

On Tue, Oct 21, 2008 at 8:48 AM, Pete <sneakypete81@...287...> wrote:

gcc -fno-strict-aliasing -DNDEBUG -g -O3 -Wall -Wstrict-prototypes
-I/usr/lib/python2.5/site-packages/numpy-1.2.0-py2.5-cygwin-1.5.25-i686.egg/numpy/core/include
-I/usr/include/freetype2 -I/usr/include -I. -I/usr/include/python2.5 -c
src/ft2font.cpp -o build/temp.cygwin-1.5.25-i686-2.5/src/ft2font.o
Unable to free colormap, palette is still selected.
gcc: fork: Resource temporarily unavailable
error: command 'gcc' failed with exit status 1