In article
<[EMAIL PROTECTED]>,
"Charlie Moad" <[EMAIL PROTECTED]> wrote:
> On 6/2/06, Russell E. Owen <[EMAIL PROTECTED]>
> wrote:
> > I'm using matplotlib in an application I distribute. For Windows and Mac
> > users I distribute a frozen application which includes python,
> > matplotlib, etc. and I'm wondering how best to include the matplotlib
> > data files.
> >
> > matplotlib searches for its data files in __init__._get_data_path. It
> > seems to search shared locations first, then locations that would be
> > relevant to a frozen application. Is that safe? I worry that if a user
> > of my app has their own version of matplotlib (possibly a very different
> > version than I've included) then the data files might be different.
> >
> > If this really is an issue, then what to do?
>
> The only way you could have conflicting data sources is if
> MATPLOTLIBDATA is defined in your environment.
> of setting that I am inclined to think they might know what to do in
> case of an error. If that env var is not set, then mpl looks inside
> the its module. Different installs will not see the others. We
> finally have a special case for frozen installations. It has
> primarily been made for py2exe, in which you should have a folder
> called 'matplotlibdata' in your app's bundle.
OK, thanks. I had not realized that so few dirs were searched on Windows
as compared to unix/MacOS X, but you're right. So although the test for
frozen windows versions comes last, there's not much to collide with
before that.
> > For Mac I can put the data files deep in the app in
> > Contents/Frameworks/Python.Framework/2.4/share/matplotlib, which is the
> > second location looked at (after environment variable MATPLOTLIBDATA).
>
> The second location should be:
> ....Frameworks/Python.Framework/2.4/lib/python2.4/matplotlib/mpl-data
>
> Are you using an old version of matplotlib?
I guess it's a bit old. 0.82. I need something built for MacOS X 10.3.9
so my bundled app runs on that.
Thanks for the heads up on the changed path. Maybe I'll remember to fix
my bundling code when I upgrade matplotlib.
> > For Windows, there doesn't seem any way out. The Windows frozen test is
> > dead last.
>
> You can remove the MATPLOTLIBDATA env var from os.environ in your code.
Great idea. I'll do that. Thanks!
> In my experience with distributing apps with matplotlib, I have known
> in advanced the packages I want to use. For example, if I know I am
> going to bundle Tkinter and numpy, then I make sure I have the
> following before using any matplotlib commands.
>
> import matplotlib
> matplotlib.use('TkAgg')
> matplotlib.rcParams['numerix'] = 'numpy'
Thanks for the tip. I knew about the first one, but not the second!
-- Russell
_______________________________________________
Matplotlib-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users