|
From: Tim S. <pur...@gm...> - 2007-06-30 01:34:30
|
I was having trouble with py2exe not getting the datafiles that it needed. I
noticed someone else got it to work by copying all the files, but losing the
directory structure. I tried that, but I still had missing datafiles at
runtime.
This function will return everything needed for py2exe to work correctly.
Instead of returning one tuple, it returns a list of tuples, so the use
changes a little bit, but at least it works.
def get_py2exe_datafiles():
outdirname = 'matplotlibdata'
mplfiles = []
for root, dirs, files in os.walk(get_data_path()):
py2exe_files = []
# Append root to each file so py2exe can find them
for file in files:
py2exe_files.append(os.sep.join([root, file]))
if len(py2exe_files) > 0:
py2exe_root = root[len(get_data_path()+os.sep):]
if len(py2exe_root) > 0:
mplfiles.append((os.sep.join([outdirname, py2exe_root]),
py2exe_files))
else:
# Don't do a join for the root directory
mplfiles.append((outdirname, py2exe_files))
return mplfiles
Sorry for not submitting as a patch: I haven't quite figured out how to do
that yet.
|