Calling all Mac OSX users!

The mpl developers are getting very close to the long-awaited v1.1.0 release of matplotlib. Before we do so, we are doing some final checking of the documentation to make sure that all critical pieces of information iss correct and up to date.

In checking over the instructions for building and installing matplotlib on MacOSX, I have found two separate sets of instructions. On the install page, there is a reference to a README.txt file in “release/osx”. This file is there, but it seems to refer to other files that no longer exists. Meanwhile, there is an un-referenced file in the top directory called README.osx that seems a lot more current.

Because I do not have a Mac that I can use for development, I would like to ask the community for help in determining the correct set of instructions and to eliminate cruft. I think it would also be useful to point users to any relevant instructions for installing/building numpy on Macs. I would also like to make sure we are current with information on installing on a stock Lion install.

Please feel free to respond on this list, or better, make a branch on github and submit pull requests to help us improve these documents.

Thanks!
Ben Root

I wrote both of those files originally (make.osx and releases/osx/*).
The original division of labor was the stuff in "releases" was
designed to build the release binaries, and the stuff in make.osx was
primarily used to build from svn or src. Overtime, most of the effort
has gone into make.osx, and it now includes support for binaries. I
no longer build the OSX binaries (Russell does) and no longer use OS X
(back to ubuntu) so if Russell is not using the stuff in releases/osx,
we can flush it.

JDH

···

On Mon, Aug 15, 2011 at 9:34 PM, Benjamin Root <ben.root@...553...> wrote:

The mpl developers are getting very close to the long-awaited v1.1.0 release
of matplotlib. Before we do so, we are doing some final checking of the
documentation to make sure that all critical pieces of information iss
correct and up to date.

In checking over the instructions for building and installing matplotlib on
MacOSX, I have found two separate sets of instructions. On the install
page, there is a reference to a README.txt file in "release/osx". This file
is there, but it seems to refer to other files that no longer exists.
Meanwhile, there is an un-referenced file in the top directory called
README.osx that seems a lot more current.

Because I do not have a Mac that I can use for development, I would like to
ask the community for help in determining the correct set of instructions
and to eliminate cruft. I think it would also be useful to point users to
any relevant instructions for installing/building numpy on Macs. I would
also like to make sure we are current with information on installing on a
stock Lion install.

Please feel free to respond on this list, or better, make a branch on github
and submit pull requests to help us improve these documents.

The mpl developers are getting very close to the long-awaited v1.1.0 release
of matplotlib. Before we do so, we are doing some final checking of the
documentation to make sure that all critical pieces of information iss
correct and up to date.

In checking over the instructions for building and installing matplotlib on
MacOSX, I have found two separate sets of instructions. On the install
page, there is a reference to a README.txt file in "release/osx". This file
is there, but it seems to refer to other files that no longer exists.
Meanwhile, there is an un-referenced file in the top directory called
README.osx that seems a lot more current.

Because I do not have a Mac that I can use for development, I would like to
ask the community for help in determining the correct set of instructions
and to eliminate cruft. I think it would also be useful to point users to
any relevant instructions for installing/building numpy on Macs. I would
also like to make sure we are current with information on installing on a
stock Lion install.

Please feel free to respond on this list, or better, make a branch on github
and submit pull requests to help us improve these documents.

I wrote both of those files originally (make.osx and releases/osx/*).
The original division of labor was the stuff in "releases" was
designed to build the release binaries, and the stuff in make.osx was
primarily used to build from svn or src. Overtime, most of the effort
has gone into make.osx, and it now includes support for binaries. I
no longer build the OSX binaries (Russell does) and no longer use OS X
(back to ubuntu) so if Russell is not using the stuff in releases/osx,
we can flush it.

The releases/win32/ tree is also unmaintained since 0.99.0.rc1. Who does the Windows builds these days? Christophe?

It would be nice to have a maintained record of how release builds are done, or better yet, up-to-date scripts that fully automate it.

Eric

···

On 08/16/2011 10:10 AM, John Hunter wrote:

On Mon, Aug 15, 2011 at 9:34 PM, Benjamin Root<ben.root@...553...> wrote:

JDH

The mpl developers are getting very close to the long-awaited v1.1.0 release
of matplotlib. Before we do so, we are doing some final checking of the
documentation to make sure that all critical pieces of information iss
correct and up to date.

In checking over the instructions for building and installing matplotlib on
MacOSX, I have found two separate sets of instructions. On the install
page, there is a reference to a README.txt file in "release/osx". This file
is there, but it seems to refer to other files that no longer exists.
Meanwhile, there is an un-referenced file in the top directory called
README.osx that seems a lot more current.

Because I do not have a Mac that I can use for development, I would like to
ask the community for help in determining the correct set of instructions
and to eliminate cruft. I think it would also be useful to point users to
any relevant instructions for installing/building numpy on Macs. I would
also like to make sure we are current with information on installing on a
stock Lion install.

Please feel free to respond on this list, or better, make a branch on github
and submit pull requests to help us improve these documents.

I wrote both of those files originally (make.osx and releases/osx/*).
The original division of labor was the stuff in "releases" was
designed to build the release binaries, and the stuff in make.osx was
primarily used to build from svn or src. Overtime, most of the effort
has gone into make.osx, and it now includes support for binaries. I
no longer build the OSX binaries (Russell does) and no longer use OS X
(back to ubuntu) so if Russell is not using the stuff in releases/osx,
we can flush it.

The releases/win32/ tree is also unmaintained since 0.99.0.rc1. Who
does the Windows builds these days? Christophe?

It would be nice to have a maintained record of how release builds are
done, or better yet, up-to-date scripts that fully automate it.

IIRC Stan West has updated those build scripts to work with Visual Studio 2008 Express.

I use Visual Studio and Windows SDK compilers, whatever is the officially documented and supported compiler by the targeted Python version. I don't use anything from the mpl/releases/win32 tree but follow the instructions at <http://matplotlib.sourceforge.net/users/installing.html> and <http://docs.python.org/distutils/builtdist.html>: run `python setup.py bdist_wininst` after customizing setup.cfg and manually building/installing all required and optional dependencies, making sure they can be found by setup.py (e.g. via environment variables). I don't think it is reasonable or necessary to fully automate this process involving 10 python versions, ~10 dependencies, 4 compilers, and several helper programs (CMake, nasm, git, tar, zip, miktex, Ghostscript). The only thing worth providing might be the prebuilt static link libraries and header files for zlib, libpng, and freetype for the 4 different MSC compilers/runtime libraries.

Christoph

···

On 8/16/2011 11:12 PM, Eric Firing wrote:

On 08/16/2011 10:10 AM, John Hunter wrote:

On Mon, Aug 15, 2011 at 9:34 PM, Benjamin Root<ben.root@...553...> wrote:

Eric

JDH

<snip>

The only thing worth providing might be the prebuilt static link libraries
and header files for zlib, libpng, and freetype for the 4 different MSC
compilers/runtime libraries.

This would be very helpful. I haven't been able to track down the
plot_directive bugs on windows, because I haven't been able to build
the dependencies with any luck.

Skipper

···

On Wed, Aug 17, 2011 at 4:49 AM, Christoph Gohlke <cgohlke@...244...> wrote:

OK. I uploaded matplotlib-1.x-windows-link-libraries.zip at <http://www.lfd.uci.edu/~gohlke/pythonlibs/#matplotlib>.

The archive contains zlib-1.2.5, libpng-1.4.8, and freetype-2.4.6 link libraries and header files for the build systems listed below.

All other Python package dependencies can also be downloaded from that page. Let me know if anything is missing.

A description on how to build Python 2.6+ extensions using the free Windows SDK 7.0 is at <http://wiki.cython.org/64BitCythonExtensionsOnWindows>. I have not tested it with mpl though.

Christoph

msvcr71-x32

···

On 8/17/2011 12:03 PM, Skipper Seabold wrote:

On Wed, Aug 17, 2011 at 4:49 AM, Christoph Gohlke<cgohlke@...244...> wrote:
<snip>

The only thing worth providing might be the prebuilt static link libraries
and header files for zlib, libpng, and freetype for the 4 different MSC
compilers/runtime libraries.

This would be very helpful. I haven't been able to track down the
plot_directive bugs on windows, because I haven't been able to build
the dependencies with any luck.

Skipper

-----------
Python 2.5 32 bit
Visual Studio .NET 2003
MS C Compiler 13.10
MSVCR71.DLL C runtime

msvcrt-x64
----------
Python 2.5 64 bit
Microsoft Platform SDK for Windows Server 2003 R2
MS C Compiler 13.10
MSVCRT.DLL C runtime

msvcr90-x32
-----------
Python 2.6, 2.7, 3.1, 3.2 32 bit
Microsoft Visual Studio 2008 Pro
(or Microsoft Windows SDK v7.0 for Windows 7 and .NET Framework 3.5 Service Pack 1)
MS C Compiler 15.0
MSVCR90.DLL C runtime

msvcr90-x64
-----------
Python 2.6, 2.7, 3.1, 3.2 64 bit
Microsoft Visual Studio 2008 Pro
(or Microsoft Windows SDK v7.0 for Windows 7 and .NET Framework 3.5 Service Pack 1)
MS C Compiler 15.0
MSVCR90.DLL C runtime

<snip>

The only thing worth providing might be the prebuilt static link libraries
and header files for zlib, libpng, and freetype for the 4 different MSC
compilers/runtime libraries.

This would be very helpful. I haven't been able to track down the
plot_directive bugs on windows, because I haven't been able to build
the dependencies with any luck.

Skipper

OK. I uploaded matplotlib-1.x-windows-link-libraries.zip at
<http://www.lfd.uci.edu/~gohlke/pythonlibs/#matplotlib>.

The archive contains zlib-1.2.5, libpng-1.4.8, and freetype-2.4.6 link
libraries and header files for the build systems listed below.

All other Python package dependencies can also be downloaded from that
page. Let me know if anything is missing.

A description on how to build Python 2.6+ extensions using the free
Windows SDK 7.0 is at
<http://wiki.cython.org/64BitCythonExtensionsOnWindows>. I have not
tested it with mpl though.

Christoph

msvcr71-x32
-----------
Python 2.5 32 bit
Visual Studio .NET 2003
MS C Compiler 13.10
MSVCR71.DLL C runtime

msvcrt-x64
----------
Python 2.5 64 bit
Microsoft Platform SDK for Windows Server 2003 R2
MS C Compiler 13.10

Correction: this should be version 14.00

Christoph

···

On 8/17/2011 1:21 PM, Christoph Gohlke wrote:

On 8/17/2011 12:03 PM, Skipper Seabold wrote:

On Wed, Aug 17, 2011 at 4:49 AM, Christoph Gohlke<cgohlke@...244...> wrote:

MSVCRT.DLL C runtime

msvcr90-x32
-----------
Python 2.6, 2.7, 3.1, 3.2 32 bit
Microsoft Visual Studio 2008 Pro
(or Microsoft Windows SDK v7.0 for Windows 7 and .NET Framework 3.5
Service Pack 1)
MS C Compiler 15.0
MSVCR90.DLL C runtime

msvcr90-x64
-----------
Python 2.6, 2.7, 3.1, 3.2 64 bit
Microsoft Visual Studio 2008 Pro
(or Microsoft Windows SDK v7.0 for Windows 7 and .NET Framework 3.5
Service Pack 1)
MS C Compiler 15.0
MSVCR90.DLL C runtime

------------------------------------------------------------------------------
Get a FREE DOWNLOAD! and learn more about uberSVN rich system,
user administration capabilities and model configuration. Take
the hassle out of deploying and managing Subversion and the
tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

From: Christoph Gohlke [mailto:cgohlke@…244…]
Sent: Wednesday, August 17, 2011 04:49

>
> The releases/win32/ tree is also unmaintained since 0.99.0.rc1. Who
> does the Windows builds these days? Christophe?
>
> It would be nice to have a maintained record of how release builds are
> done, or better yet, up-to-date scripts that fully automate it.

IIRC Stan West has updated those build scripts to work with Visual
Studio 2008 Express.

I started down that path, but I ended up using a simple CMD script instead of
a Makefile. It takes the approach you described below of preparing include
and link flags and then calling "python setup...". I've attached it as an
example for the mailing list, but note that the paths are specific to my
directory layout and to how I prepared the dependencies. I've also attached
my notes from building the dependencies. The versions described there are
circa November 2010.

build.cmd.txt (1.1 KB)

Build notes for matplotlib dependencies.htm (2.78 KB)

···

On 8/16/2011 11:12 PM, Eric Firing wrote:

I use Visual Studio and Windows SDK compilers, whatever is the
officially documented and supported compiler by the targeted Python
version. I don't use anything from the mpl/releases/win32 tree but
follow the instructions at
<http://matplotlib.sourceforge.net/users/installing.html> and
<http://docs.python.org/distutils/builtdist.html>: run `python setup.py
bdist_wininst` after customizing setup.cfg and manually
building/installing all required and optional dependencies, making sure
they can be found by setup.py (e.g. via environment variables). I don't
think it is reasonable or necessary to fully automate this process
involving 10 python versions, ~10 dependencies, 4 compilers, and several
helper programs (CMake, nasm, git, tar, zip, miktex, Ghostscript). The
only thing worth providing might be the prebuilt static link libraries
and header files for zlib, libpng, and freetype for the 4 different MSC
compilers/runtime libraries.

Ok, there has been a lot of useful discussion (for both MacOSX and Windows), but in the end, I want to know this: Is it possible for matplotlib to provide a single, recommended, fully-supported-by-us method for installing our package (possibly for each platform?). Could it be pip? Or some other option?

It is kinda sad that the linux install instructions are easier than the other platform instructions, and I don’t think we even provide a linux installer.

Ben Root

Ok, there has been a lot of useful discussion (for both MacOSX and
Windows), but in the end, I want to know this: Is it possible for
matplotlib to provide a single, recommended, fully-supported-by-us
method for installing our package (possibly for each platform?). Could
it be pip? Or some other option?

We do that via the installers built by Christoph for Windows and by Russell for OS X. Beyond that, for compiling from source, it is a matter of recipes that work for various platforms under various circumstances; there are just too many variables.

Perhaps the situation for OS X doesn't have to be quite as bad as it sometimes looks. make.osx works, or did the last time I tried it, but requires periodic maintenance. We could probably do what Russell recommends and restore darwin library locations to setupext.py, and then a plain setup-based build and install would work for many people. It might be worth trying, to see if it leads to more traffic on the list, or to less.

My sense is that pip and easy-install cause more trouble for mpl than they are worth.

It is kinda sad that the linux install instructions are easier than the
other platform instructions, and I don't think we even provide a linux
installer.

Distros provide packages, so that's the equivalent of "installer" for linux; we provide git, tarballs, and notes as to what header files or devel packages need to be in place if one wants to compile from source.

Eric

···

On 08/21/2011 10:06 AM, Benjamin Root wrote:

Ben Root

It's pretty easy using MacPorts (thank you MacPorts maintainers :slight_smile:

sudo port install py27-matplotlib

Obviously that doesn't help when building a dev version, although you can build out of tree ports.

···

On 22/08/2011, at 5:36, Benjamin Root wrote:

Ok, there has been a lot of useful discussion (for both MacOSX and Windows), but in the end, I want to know this: Is it possible for matplotlib to provide a single, recommended, fully-supported-by-us method for installing our package (possibly for each platform?). Could it be pip? Or some other option?

It is kinda sad that the linux install instructions are easier than the other platform instructions, and I don't think we even provide a linux installer.

--
Daniel O'Connor software and network engineer
for Genesis Software - http://www.gsoft.com.au
"The nice thing about standards is that there
are so many of them to choose from."
  -- Andrew Tanenbaum
GPG Fingerprint - 5596 B766 97C0 0E94 4347 295E E593 DC20 7B3F CE8C