py2exe und matplotlib

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
george
User
Beiträge: 109
Registriert: Mittwoch 11. Januar 2006, 20:28
Wohnort: Berlin

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
Nirven
User
Beiträge: 130
Registriert: Mittwoch 10. Mai 2006, 08:18
Wohnort: Bremerhaven

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.
george
User
Beiträge: 109
Registriert: Mittwoch 11. Januar 2006, 20:28
Wohnort: Berlin

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
george
User
Beiträge: 109
Registriert: Mittwoch 11. Januar 2006, 20:28
Wohnort: Berlin

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
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Du kannst ja mal ein Auge auf den PyInstaller werfen, vielleicht ist der eine Alternative für dich.
Antworten