Mit cx_freeze eine .exe erstellen inkl. 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
Kevon
User
Beiträge: 3
Registriert: Dienstag 6. März 2018, 17:20

Servus Leute,

ich erstelle gerade eine Software-Toolbox, die arithmetische operation an Messdaten ermöglicht.

DIe Toolbox ist mittlerweile sehr komplex geworden aber sieht grob so aus:


Code: Alles auswählen

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import * 
import random



from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
import matplotlib.pyplot as plt



class Fenster(QMainWindow):                               
    
    default_value = True;                                  
    
    Okt_A_Filter = 11 * [0]
    Terz_A_Filter = 36 * [0]

    
     
    Okt_A_Filter[0] = -77.8 #8    'nach IEC 61672 - nicht vorhanden in DIN
    Okt_A_Filter[1] = -56.7  #'16
    Okt_A_Filter[2] = -39.4  #'31.5
    Okt_A_Filter[3] = -26.2  #'63      vorher -26
    Okt_A_Filter[4] = -8.6   #'250     vorher -8.5

......

app = QApplication(sys.argv)
w = Fenster()

sys.exit(app.exec_())

Nun würde ich gerne eine ausführbare Datei mit cx_freeze daraus machen, was ohne matplotlib auch problemlos klappt mit dieser setup.py Datei:

Code: Alles auswählen

from cx_Freeze import setup, Executable

base = None


executables = [Executable("Akustikprogramm.py", base=base)]

packages = ["idna"]
options = {
    'build_exe': {

        'packages':packages,
    },

}

setup(
    name = "AkustikAnalysator",
    options = options,
    version = "1.0",
    description = 'Nur zum testen',
    executables = executables
)
Aber da ich gerne möchte, dass die Messwerte auch geplottet werden sollen, muss ich auch matplotlib importieren. Die exe. startet aber mit matplotlib nicht. AUf der IDE Spyder läuft aber alles problemlos.

Beim starten der .exe mit dem import von matplotlib kommt dann sowas:
Bild


Ich kenne mich mit dem Tool cx_freeze leider nicht aus und verstehe nicht warum einige Module nicht gefunden werden.
Wenn ihr mir helfen könnt wäre ich euch echt dankbar.
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Finden sich Vorschlaege zu auf StackOverflow:

https://stackoverflow.com/questions/100 ... for-python
Kevon
User
Beiträge: 3
Registriert: Dienstag 6. März 2018, 17:20

Habe die Suche und auf stackoverflow schon alles durchforstet es hilft mir nicht weiter.
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Was heisst hilft nicht? Hast du das gemacht? Ich sehe es jedenfalls nicht in deiner setup.py reflektiert.
Kevon
User
Beiträge: 3
Registriert: Dienstag 6. März 2018, 17:20

Ja, ich habe es versucht die bib auch mit zu importieren, aber es taucht ein anderer Fehler auf.

Code: Alles auswählen

import os
os.environ['TCL_LIBRARY'] = r'C:\Program Files\Python 3.5\tcl\tcl8.6'
os.environ['TK_LIBRARY'] = r'C:\Program Files\Python 3.5\tcl\tk8.6'

import sys
from cx_Freeze import setup, Executable

base = None


build_exe_options = {"packages": ["numpy","matplotlib","tkinter"]}


setup(  name = "Programm",
        version = "1.0",
        description = "My GUI application!",
        options = {"build_exe": build_exe_options},
        executables = [Executable("Akustikprogramm.py", base=base)])
Bild
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@Kevon: und wo ist jetzt das Problem, mit der neuen Fehlermeldung wieder eine Lösung zu finden: https://stackoverflow.com/questions/423 ... d-module-c?
Antworten