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.
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