i came across some issues while attempting to install matplotlib today:

====
first issue: no bug tracker
====
matplotlib's website has a link to a bug tracker that is no longer available.  
i'm guessing this mailing list is 
the new bug tracker, which seems to me like a downgrade.


====
second issue: outdated PyPI listing
====
the current version of matplotlib is 1.0.1.  but the PyPI download URL is such 
that it causes pip to install 
an older version, 0.91.1:

$ pip install matplotlib
Downloading/unpacking matplotlib
  Downloading matplotlib-0.91.1.tar.gz (3.9Mb): 3.9Mb downloaded
[...]

matplotlib devs: please fix your PyPI listing.

matplotlib users: you can work around this by using the following command 
instead (but see the issue 
below):

$ pip install 
http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.0.1/matplotlib-1.0.1.tar.gz


====
third issue: missing dependency specifications
====
a long time ago, distutils was the only way to define how to set up a Python 
project and to run actions 
against such a definition.  later, setuptools superseded distutils as the 
standard.  now, setuptools is so 
old that has been superseded by distribute.  look at nearly any active project 
in the Python community, 
and you will find that it uses distribute and has installation docs that refer 
to pip (instead of the old 
easy_install that came with setuptools).  and for good reason, since each 
successor to distutils brought 
significant improvements on many counts.  i think it's safe to say that anyone 
using Python in the 
modern day uses it with distribute, or at least with setuptools.

but matplotlib appears to still use distutils:

setup.py:35
----
from distutils.core import setup
----

one of the major improvements that came with setuptools is the ability to 
specify dependencies via the 
``install_requires`` keyword argument to the ``setup()`` call in a project's 
setup script.  package 
managers such as pip can use this to automatically fetch unsatisfied 
dependencies.  however, since 
matplotlib doesn't have an install_requires, its dependencies are left 
unsatisfied, even when using pip, 
which results in the following:

----
$ pip install 
http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.0.1/matplotlib-1.0.1.tar.gz
Downloading/unpacking 
http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.0.1/matplotlib-1.0.1.tar.gz
  Downloading matplotlib-1.0.1.tar.gz (13.3Mb): 13.3Mb downloaded
  Running setup.py egg_info for package from 
http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.0.1/matplotlib-1.0.1.tar.gz
    basedirlist is: ['/usr/local', '/usr']
    ============================================================================
    BUILDING MATPLOTLIB
                matplotlib: 1.0.1
                    python: 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)  [GCC
                            4.5.2]
                  platform: linux2
    
    REQUIRED DEPENDENCIES
                     numpy: no
                            * You must install numpy 1.1 or later to build
                            * matplotlib.
    Complete output from command python setup.py egg_info:
    basedirlist is: ['/usr/local', '/usr']

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

BUILDING MATPLOTLIB

            matplotlib: 1.0.1

                python: 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)  [GCC

                        4.5.2]

              platform: linux2



REQUIRED DEPENDENCIES

                 numpy: no

                        * You must install numpy 1.1 or later to build

                        * matplotlib.

----------------------------------------
Command python setup.py egg_info failed with error code 1
Storing complete log in /home/ivan/.pip/pip.log
----

matplotlib devs: please fix your setup script to use setuptools (distribute 
acts as a drop-in 
replacement) and specify an ``install_requires`` as well as any applicable 
``extras_require`` (e.g. for 
matplotlib backends and optional features).

matplotlib users: you can work around this, at least for the unconditional 
dependency on numpy, as 
follows:

$ pip install numpy
$ pip install 
http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.0.1/matplotlib-1.0.1.tar.gz


====
fourth issue: compiler warnings about ``-Wstrict-prototypes``
====
while building matplotlib, i get a bunch of these warnings:

cc1plus: warning: command line option "-Wstrict-prototypes" is valid for 
Ada/C/ObjC but not for C++

they're harmless--i'm guessing gcc simply throws out the offending option.  but 
compiler warnings exist 
for a reason--to warn developers of bad practices that may or may not lead to 
incorrect runtime 
behavior.  leaving them in released code can lead to obfuscation of warnings 
about real issues and 
confusion about the causes of erroneous behavior.

matplotlib devs: please fix your compiler flags to omit ``-Wstrict-prototypes`` 
from invocations of gcc 
and g++ on C++ files.

matplotlib users: you can safely ignore these warnings.

Attachment: signature.asc
Description: This is a digitally signed message part.

------------------------------------------------------------------------------
BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA
The must-attend event for mobile developers. Connect with experts. 
Get tools for creating Super Apps. See the latest technologies.
Sessions, hands-on labs, demos & much more. Register early & save!
http://p.sf.net/sfu/rim-blackberry-1
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to