From 12988acda937f1b474c7575d5c0c24b43e804742 Mon Sep 17 00:00:00 2001 From: Piotr Dobrowolski Date: Tue, 28 Aug 2018 22:04:06 +0200 Subject: [PATCH] Load assets and i18n into pyinstaller bundle --- luftdaten-tool.py | 10 ++++++++-- luftdaten-tool.spec | 4 ++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/luftdaten-tool.py b/luftdaten-tool.py index 4e050e6..298fc40 100644 --- a/luftdaten-tool.py +++ b/luftdaten-tool.py @@ -33,6 +33,11 @@ PREFERED_PORTS = [ 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 QtCore.Signal = QtCore.pyqtSignal QtCore.Slot = QtCore.pyqtSlot @@ -78,7 +83,7 @@ class MainWindow(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow): # FIXME: dirty hack to solve relative paths in *.ui oldcwd = os.getcwd() - os.chdir('assets') + os.chdir(os.path.join(RESOURCES_PATH, 'assets')) self.setupUi(self) os.chdir(oldcwd) @@ -110,7 +115,8 @@ class MainWindow(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow): self.app.removeTranslator(self.translator) 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.retranslateUi(self) diff --git a/luftdaten-tool.spec b/luftdaten-tool.spec index c12df00..11b0677 100644 --- a/luftdaten-tool.spec +++ b/luftdaten-tool.spec @@ -6,7 +6,7 @@ block_cipher = None a = Analysis(['luftdaten-tool.py'], pathex=['.'], binaries=[], - datas=[], + datas=[('assets/', './assets'), ('i18n/*.qm', './i18n')], hiddenimports=['PyQt5.sip'], hookspath=[], runtime_hooks=[], @@ -26,4 +26,4 @@ exe = EXE(pyz, strip=False, upx=True, runtime_tmpdir=None, - console=True ) + console=False )