eine Weile lang habe ich es so gehandhabt, dass ich die *.ui-Dateien immer dynamisch geladen habe. Aber da py2exe mit *.ui-Dateien insofern ein Problem hat, dass es diese Dateien nicht mit kopiert beim Erstellen der *.exe-Datei, so dachte ich mir, mache ich es so wie mit den Bild-Dateien. Denn Python-Dateien werden von py2exe weitestgehend ohne Probleme mit kopiert. Ich habe die ui-Dateien in eine Resource-Datei geladen, diese Datei dann mittel pyrcc4-Befehl in eine Python-Datei umgewandelt. Alles prima.
Code: Alles auswählen
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import os
import sys
from PyQt4.QtCore import Qt, QFile
from PyQt4.uic import loadUi
from PyQt4.QtGui import QDialog
from xarphus.gui import ui_rc
BASE_PATH = os.path.dirname(os.path.abspath(__file__))
#UI_PATH = os.path.join(BASE_PATH, 'gui', 'create_user.ui')
UI_PATH = QFile(":/ui_file/create_user.ui")
class CreateUser_Window(QDialog):
def __init__(self, parent):
QDialog.__init__(self, parent)
[...]
UI_PATH.open(QFile.ReadOnly)
self.ui_create_user = loadUi(UI_PATH, self)
UI_PATH.close()
[...]
Die Fehlermeldung sieht wie folgt aus:
Kann mir jemand bitte sagen, was ich falsch mache? Was übersehe ich hier?Traceback (most recent call last):
File "D:\Dan\Python\xarphus\xarphus\frm_mdi.py", line 359, in create_update_form
self.update_form = Update_Window(self)
File "D:\Dan\Python\xarphus\xarphus\frm_update.py", line 135, in __init__
self.ui_update = loadUi(UI_PATH, self)
File "C:\Python27\lib\site-packages\PyQt4\uic\__init__.py", line 238, in loadUi
return DynamicUILoader(package).loadUi(uifile, baseinstance, resource_suffix)
File "C:\Python27\lib\site-packages\PyQt4\uic\Loader\loader.py", line 71, in loadUi
return self.parse(filename, resource_suffix, basedir)
File "C:\Python27\lib\site-packages\PyQt4\uic\uiparser.py", line 984, in parse
document = parse(filename)
File "C:\Python27\lib\xml\etree\ElementTree.py", line 1182, in parse
tree.parse(source, parser)
File "C:\Python27\lib\xml\etree\ElementTree.py", line 657, in parse
self._root = parser.close()
File "C:\Python27\lib\xml\etree\ElementTree.py", line 1654, in close
self._raiseerror(v)
File "C:\Python27\lib\xml\etree\ElementTree.py", line 1506, in _raiseerror
raise err
xml.etree.ElementTree.ParseError: no element found: line 1, column 0