Load assets and i18n into pyinstaller bundle

This commit is contained in:
Piotr Dobrowolski 2018-08-28 22:04:06 +02:00
parent c734a7f5e7
commit 12988acda9
2 changed files with 10 additions and 4 deletions

View File

@ -33,6 +33,11 @@ PREFERED_PORTS = [
ROLE_DEVICE = QtCore.Qt.UserRole + 1 ROLE_DEVICE = QtCore.Qt.UserRole + 1
if getattr(sys, 'frozen', False):
RESOURCES_PATH = sys._MEIPASS
else:
RESOURCES_PATH = os.path.dirname(os.path.realpath(__file__))
# FIXME move this into something like qtvariant.py # FIXME move this into something like qtvariant.py
QtCore.Signal = QtCore.pyqtSignal QtCore.Signal = QtCore.pyqtSignal
QtCore.Slot = QtCore.pyqtSlot QtCore.Slot = QtCore.pyqtSlot
@ -78,7 +83,7 @@ class MainWindow(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
# FIXME: dirty hack to solve relative paths in *.ui # FIXME: dirty hack to solve relative paths in *.ui
oldcwd = os.getcwd() oldcwd = os.getcwd()
os.chdir('assets') os.chdir(os.path.join(RESOURCES_PATH, 'assets'))
self.setupUi(self) self.setupUi(self)
os.chdir(oldcwd) os.chdir(oldcwd)
@ -110,7 +115,8 @@ class MainWindow(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
self.app.removeTranslator(self.translator) self.app.removeTranslator(self.translator)
lang = QtCore.QLocale.languageToString(locale.language()) lang = QtCore.QLocale.languageToString(locale.language())
self.translator.load(os.path.join('i18n', lang + '.qm')) self.translator.load(os.path.join(
RESOURCES_PATH, 'i18n', lang + '.qm'))
self.app.installTranslator(self.translator) self.app.installTranslator(self.translator)
self.retranslateUi(self) self.retranslateUi(self)

View File

@ -6,7 +6,7 @@ block_cipher = None
a = Analysis(['luftdaten-tool.py'], a = Analysis(['luftdaten-tool.py'],
pathex=['.'], pathex=['.'],
binaries=[], binaries=[],
datas=[], datas=[('assets/', './assets'), ('i18n/*.qm', './i18n')],
hiddenimports=['PyQt5.sip'], hiddenimports=['PyQt5.sip'],
hookspath=[], hookspath=[],
runtime_hooks=[], runtime_hooks=[],
@ -26,4 +26,4 @@ exe = EXE(pyz,
strip=False, strip=False,
upx=True, upx=True,
runtime_tmpdir=None, runtime_tmpdir=None,
console=True ) console=False )