Ein taubstummer Fehler
Verfasst: Donnerstag 14. Januar 2016, 22:27
Hallo Leute,
den Betreff habe ich mit Absicht gewählt. Es funktioniert etwas nicht, aber Python spuckt keine Fehlermeldung aus. Nun, was habe ich vor? Ich möchte ein Bild mittels der QFileDialog in QLabel() laden. Hier der Quelltext des ausführbaren Programms:
Führe ich das Programm unter Python aus, funktioniert der Skript wunderbar. keinerlei Fehlermeldung.
Nun gehe ich einen Schritt weiter, und mache mit Py2Exe aus diesem Skript eine *.exe-Datei.
Hier mein kleines Setup-Skript:
Es wird eine *.exe-Datei erfolgreich erstellt. Und das Programm wird auch ordnungsgemäß gestartet. Versuche ich aber ein Bild in das QLabel() zu laden, dann passiert einfach gar nichts. Absolut gar nicht. Keinerlei Fehlermeldung. Hier wird zwar das QFileDialog angezeigt, man kann ein Bild auswählen, und beim Klick auf Öffnen passiert gar nichts.
Wieso klappt es, sobald man das Skript "normal" startet, also den Quelltext direkt startet. Aber sobald man mit py2exe daraus eine *.exe-Datei kreiert, dann klappt es nicht. Was habe ich übersehen?
den Betreff habe ich mit Absicht gewählt. Es funktioniert etwas nicht, aber Python spuckt keine Fehlermeldung aus. Nun, was habe ich vor? Ich möchte ein Bild mittels der QFileDialog in QLabel() laden. Hier der Quelltext des ausführbaren Programms:
Code: Alles auswählen
#!/usr/bin/env python
from PyQt4 import QtCore, QtGui
import os
class Window(QtGui.QWidget):
def __init__(self):
super(Window, self).__init__()
self.load_pushButton = QtGui.QPushButton()
self.load_pushButton.setText("Load picture")
self.load_pushButton.clicked.connect(self.open_file_dialog)
self.image_label = QtGui.QLabel ()
h_layout = QtGui.QHBoxLayout()
h_layout.addWidget(self.load_pushButton)
h_layout.addWidget(self.image_label)
self.setLayout(h_layout)
def load_pic(self, img_path):
self.image_label.setPixmap(QtGui.QPixmap(""))
self.image_label.setPixmap(QtGui.QPixmap(img_path))
def open_file_dialog(self):
qfile_dialog_title = self.tr("Select picture")
file_path_pic = unicode(QtGui.QFileDialog.getOpenFileName(self, qfile_dialog_title,
os.path.expanduser(""),
"*.png *.jpg *.bmp"))
self.load_pic(file_path_pic)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())Nun gehe ich einen Schritt weiter, und mache mit Py2Exe aus diesem Skript eine *.exe-Datei.
Hier mein kleines Setup-Skript:
Code: Alles auswählen
from distutils.core import setup
import py2exe, sys, os
sys.argv.append('py2exe')
includes = ["sip", "PyQt4.QtNetwork", 'PyQt4.QtCore','PyQt4.QtGui', 'PyQt4.uic']
setup(
windows=['example_load_image.py'],
options={
"py2exe":{
"unbuffered": True,
"optimize": 2,
'includes': includes,
"excludes": ["email"]
}
}
)Wieso klappt es, sobald man das Skript "normal" startet, also den Quelltext direkt startet. Aber sobald man mit py2exe daraus eine *.exe-Datei kreiert, dann klappt es nicht. Was habe ich übersehen?