Seite 1 von 1

py2exe und matplotlib

Verfasst: Mittwoch 11. Oktober 2006, 11:48
von george
Hey,

ich habe Schwierigkeiten ein Modul, was matplotlib nutzt, in eine *.exe zu kompilieren.
Das Modul erzeugt eine Kennlinie und speichert diese als Bilddatei ab. Funktioniert alles sauber.

Folgendes Setupskript habe ich geschrieben:

Code: Alles auswählen

from distutils.core import setup
import py2exe
import glob
import matplotlib
from distutils.filelist import findall
import sys
import os

     
matplotlibdatadir = matplotlib.get_data_path()

matplotlibdata = findall(matplotlibdatadir)
dataFiles = []
for f in matplotlibdata:
    dirname = os.path.join('matplotlibdata', f[len(matplotlibdatadir)+1:])
    dataFiles.append((os.path.split(dirname)[0], [f]))

setup(
    console=['mdlReaderWriter.py'],
    options={
             'py2exe': {'includes': ['matplotlib.numerix.random_array']
                        
                        }
            },
    data_files=dataFiles
    
)
Will ich jetzt die exe ausführen, bekomme ich Fehlermeldungen, das er Module nicht findet.
Diese Module habe ich probehalber in den "library.zip" manuell kopiert.
Anscheinend kann py2exe nicht alle Abhängigkeiten auflösen.

Habe schon im Internet gegoogelt und verschiedene Lösungen probiert, aber mit keiner lief das Modul.

Habt ihr schon Erfahrungen gesammelt in Bezug auf py2exe und matplotlib?
Dieses Thema wurde auch schon im diesem Thread
http://www.python-forum.de/topic-6919. ... atplotlib
behandelt. Ich konnte aber keine Lösung finden.

greets george

Verfasst: Mittwoch 11. Oktober 2006, 12:12
von Nirven
Hilft dir nicht, aber meine Erfahrung mit Matplotlib und .exen: Geht nicht. bei mir jeden falls nicht... alles andere habe ich irgendwann hinbekommen als .exe, hier habe ich aufgegeben.

Verfasst: Mittwoch 11. Oktober 2006, 12:18
von george
Hey Nirven,

ich glaube an dem Punkt bin ich (nach 2Tagen Arbeit und 2Liter Kaffee) auch.
Es ist deprimierend.
Es muss doch einen Workaround oder Alternativen geben.

greets george

Verfasst: Mittwoch 11. Oktober 2006, 13:24
von george
Hey Nirven,

habe es jetzt hinbekommen.
Beim Setupskript habe ich die packages erweitert:

Code: Alles auswählen

"packages": ['encodings', 'pytz', 'dateutil', 'matplotlib.numerix.random_array', 'matplotlib.backends']
Dann haben ihm beim Kompilieren noch einige DLL´s gefehlt. Die habe ich manuell gesucht und temporär in den matplotlib/backends-Ordner kopiert.
Anschließend habe ich erneut das Setupskript aufgerufen.
Jetzt funzt alles.

greets george

Verfasst: Mittwoch 11. Oktober 2006, 14:09
von Y0Gi
Du kannst ja mal ein Auge auf den PyInstaller werfen, vielleicht ist der eine Alternative für dich.