Seite 1 von 1

Fehler beim umwandeln in .exe mit pyInstaller

Verfasst: Sonntag 5. September 2010, 15:34
von raorao
Hoi mitenand!

Beim umwandeln der Datei Main.py, welche unter anderem Meldung.py importiert erscheint beim Ausführen von Build folgender Fehler in der Konsole:

File "C:\Python26\trunk\mf.py", line 117, in getmod
co = compile(string.replace(stuff, "\r\n", "\n"), py[0], 'exec')
File "Meldung.py", line 1
Python 2.6.4 (r264:75708, Oct 26 2009, 08:23:19) [MSC v.1500 32 bit (Intel)]
on win32
^
SyntaxError: invalid syntax

Anscheinend liegt in Linie 1 in Meldung.py ein Syntax Fehler vor, welcher aber bei normaler Ausführung von Main.py nicht erscheint. Hier daher der Code von Meldung.py:

Code: Alles auswählen

# -*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui
import sys


class Eingabe(object):
    def setupUi(self, Dialog, titel, text):
        Dialog.setObjectName("Dialog")
        self.widget = QtGui.QWidget(Dialog)
        self.widget.resize(300, 150)
        self.widget.setObjectName("widget")
        self.gridLayout = QtGui.QGridLayout(self.widget)
        self.gridLayout.setObjectName("gridLayout")
        self.labelMeldung = QtGui.QLabel(self.widget)
        self.labelMeldung.setObjectName("labelMeldung")
        self.gridLayout.addWidget(self.labelMeldung, 0, 0, 1, 1, QtCore.Qt.AlignCenter)
        self.pushButtonOK = QtGui.QPushButton(self.widget)
        self.pushButtonOK.setObjectName("pushButtonOK")
        self.pushButtonOK.setFixedSize(75, 23)
        self.gridLayout.addWidget(self.pushButtonOK, 1, 0, 1, 1, QtCore.Qt.AlignCenter)
        
        self.retranslateUi(Dialog, titel, text)
        QtCore.QObject.connect(self.pushButtonOK, QtCore.SIGNAL("clicked()"), self.onOK)
        QtCore.QMetaObject.connectSlotsByName(self)

    def retranslateUi(self, Dialog, titel, text):
        Dialog.setWindowTitle(titel)
        self.labelMeldung.setText(text)
        self.pushButtonOK.setText(QtGui.QApplication.translate("Dialog", "OK", None, QtGui.QApplication.UnicodeUTF8))
        

class Dialog(QtGui.QDialog, Eingabe): 
    def __init__(self, titel, text):
        QtGui.QDialog.__init__(self)
        self.setupUi(self, titel, text)
        self.exec_()

    def onOK(self):
        self.close()
Der Code wie immer beliebig anfängerhaft, ich weiss, sorry...
Kennt jemand einen Lösungsansatz für dieses Problem?

Herzlichen Dank für die Hilfe!
Liebe Grüsse
raorao

Re: Fehler beim umwandeln in .exe mit pyInstaller

Verfasst: Sonntag 5. September 2010, 15:36
von cofi
Die Fehlermeldung passt nicht zu der Datei. Zeig uns doch auch mal die `setup.py` und wie du `py2exe` aufrufst.

Re: Fehler beim umwandeln in .exe mit pyInstaller

Verfasst: Sonntag 5. September 2010, 20:54
von snafu
cofi hat geschrieben:Die Fehlermeldung passt nicht zu der Datei. Zeig uns doch auch mal die `setup.py` und wie du `py2exe` aufrufst.
Also in der Überschrift steht PyInstaller...

Re: Fehler beim umwandeln in .exe mit pyInstaller

Verfasst: Sonntag 5. September 2010, 21:11
von cofi
snafu hat geschrieben:Also in der Überschrift steht PyInstaller...
Ja, mein Fehler. Was ich geschrieben habe bleibt aber bestehen .. man muss nur `py2exe` mit `pyinstaller` ersetzen. Vielleicht noch zusaetzlich der Hinweis, dass man die SVN-Version nutzen sollte.

Re: Fehler beim umwandeln in .exe mit pyInstaller

Verfasst: Sonntag 5. September 2010, 23:41
von raorao
Sorry, habe ganz vergessen, die Konsolenaufrufe zu posten:

C:\Python26\Vocabulaaron2>C:\Python26\trunk\makespec.py --icon=Logo.png Main.py
wrote C:\Python26\Vocabulaaron2\Main.spec
now run Build.py to build the executable

C:\Python26\Vocabulaaron2>C:\Python26\trunk\Build.py Main.spec

Nun hats aber so oder so funktioniert und zwar indem ich alle erforderlichen Dateien, also nicht bloss Main.py, sondern auch Meldung.py etc. in den Ordner Vocabulaaron2 gespeichert habe bevor ich die .spec Datei gemacht habe. Zuvor war nur Main.py und Logo.png in diesem Ordner. Die .exe funktioniert nun super, einziger Schönheitsfehler bleibt, dass das mit der Zuweisung des Icons einfach nie klappt, obwohl die Bilddatei brav im selben Verzeichnis gespeichert ist. Der .exe Datei wird jedesmal einfach irgend ein Standard-Icon zugewiesen statt Logo.png. Woran könnte dies liegen, ist die Syntax der Option nicht korrekt oder das Dateiformat ungeeignet (konnte zwar in der Doku nichts dergleichen finden) oder funktioniert diese Option schlicht nur bei schönem Wetter???

Herzlichen Dank trotzdem für eure Hilfe!
Liebe Grüsse!
raorao

Re: Fehler beim umwandeln in .exe mit pyInstaller

Verfasst: Montag 6. September 2010, 00:35
von snafu
cofi hat geschrieben:
snafu hat geschrieben:Also in der Überschrift steht PyInstaller...
Ja, mein Fehler. Was ich geschrieben habe bleibt aber bestehen .. man muss nur `py2exe` mit `pyinstaller` ersetzen. Vielleicht noch zusaetzlich der Hinweis, dass man die SVN-Version nutzen sollte.
Das ist nicht mehr wirklich aktuell. Der Autor hat vor ein paar Monaten ein neues Release rausgebracht. Gut, das ist jetzt auch schon wieder eni paar Monate alt. Vermutlich werden da entsprechend neue Verbesserungen in der SVN-Version sein, die im aktuellen Release noch nicht drin sind, aber es ist bei weitem nicht mehr so krass.

Re: Fehler beim umwandeln in .exe mit pyInstaller

Verfasst: Freitag 10. September 2010, 14:02
von raorao
Super, herzlichen Dank für die Hilfe. Nach der Neuinstallation funktionierte nun alles nach Wunsch, selbstverständlich muss das Icon nicht wie oben aufgeführt als .png Datei sondern als .ico Datei vorliegen, aber dann funktioniert mit der neuen Version selbst das...