Hi,I'm sending a little module I use to force a particular version of matplotlib and backend in my library.
This is imported in my package __init__.py to make sure the environment is sane. It can also be imported in the beginning of the app to set up a sane environment, which may be necessary if the app uses matplotlib outside my library.
I don't think there is anything we can do within matplotlib to address the version requirements.
The backend check could be a little easier if we modify matplotlib.use () to be silent if the backend is already in use, or raise an error if it isn't. ImportError seems appropriate, since use() is kind of like an import. Calling switch_backend() is another option.
- Paul
# This program is public domain """ Configure plotter for plottools. This must be imported first in __init__.py for plottools. If your application uses matplotlib outside plottools, then please do the following at the start of your application: # Select matplotlib version and backend import danse.common.plottools.config Note that plottools requires particular versions of matplotlib and a particular backend. As of this writing it is the WXAgg backend for matplotlib>=0.98. The plottools package uses pkg_resources if available to select the correct version of matplotlib. If you need multiple matplotlib versions in your path, be sure to use "easy_install -m" for all of them. If a version is installed without "-m" that does not meet the requirements, then pkg_resources.require() will fail, even if you have installed a suitable version with "-m". In this case you will need to fix up your site-packages directory, probably by removing site-packages/matplotlib and the associated egg file for that version, and reinstalling with "-m". You may also need to edit site-packages/easy-install.pth. """ import sys __all__ = [] plot_version="0.98" plot_backend="WXAgg" # Sort out matplotlib version try: import pkg_resources pkg_resources.require("matplotlib>="+plot_version) except ImportError: import matplotlib from distutils.version import StrictVersion as Version if Version(matplotlib.__version__) < Version(plot_version): raise ImportError("Matplotlib version must be %s or newer"%(plot_version,)) # Sort out matplotlib backend import matplotlib if 'matplotlib.backends' not in sys.modules: # if no backend yet, be sure to use the correct one matplotlib.use(plot_backend) elif matplotlib.get_backend() != plot_backend: # if a backend has already been selected, make sure it is the correct one. raise ImportError("Matplotlib not using backend "+plot_backend)
------------------------------------------------------------------------------ Check out the new SourceForge.net Marketplace. It is the best place to buy or sell services for just about anything Open Source. http://p.sf.net/sfu/Xq1LFB
_______________________________________________ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel