Moved some package checks into the main function so we can pop an error dialog for non-command line users.

This commit is contained in:
Veronica K. B. Olsen
2020-05-15 23:40:20 +02:00
parent a8bd8e63d5
commit 5d7dfd3cea
2 changed files with 39 additions and 1 deletions
+38 -1
View File
@@ -32,7 +32,7 @@ import logging
from os import path, remove, rename from os import path, remove, rename
from PyQt5.QtGui import QIcon from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QApplication from PyQt5.QtWidgets import QApplication, QErrorMessage
from nw.guimain import GuiMain from nw.guimain import GuiMain
from nw.config import Config from nw.config import Config
@@ -217,6 +217,43 @@ def main(sysArgs=None):
logger.setLevel(debugLevel) logger.setLevel(debugLevel)
# Check Packages and Versions
errorData = []
if sys.hexversion < 0x030600F0:
errorData.append(
"At least Python 3.6 is required."
)
if CONFIG.verQtValue < 50200:
errorData.append(
"At least Qt5 version 5.2 is required, found %s." % CONFIG.verQtString
)
if CONFIG.verPyQtValue < 50200:
errorData.append(
"At least PyQt5 version 5.2 is required, found %s." % CONFIG.verPyQtString
)
try:
import PyQt5.QtSvg
except:
errorData.append("Python module 'PyQt5.QtSvg' is missing.")
try:
import lxml
except:
errorData.append("Python module 'lxml' is missing.")
if errorData:
errApp = QApplication([])
errMsg = QErrorMessage()
errMsg.setMinimumWidth(500)
errMsg.setMinimumHeight(300)
errMsg.showMessage((
"ERROR: %s cannot start due to the following issues:<br><br>"
"&nbsp;-&nbsp;%s<br><br>Exiting."
) % (
__package__, "<br>&nbsp;-&nbsp;".join(errorData)
))
errApp.exec_()
sys.exit(1)
CONFIG.initConfig(confPath, dataPath) CONFIG.initConfig(confPath, dataPath)
if testMode: if testMode:
+1
View File
@@ -36,6 +36,7 @@ from time import time
from PyQt5.Qt import PYQT_VERSION_STR from PyQt5.Qt import PYQT_VERSION_STR
from PyQt5.QtCore import QT_VERSION_STR, QStandardPaths, QSysInfo from PyQt5.QtCore import QT_VERSION_STR, QStandardPaths, QSysInfo
from PyQt5.QtWidgets import QErrorMessage
from nw.constants import nwFiles, nwUnicode from nw.constants import nwFiles, nwUnicode
from nw.common import splitVersionNumber, formatTimeStamp from nw.common import splitVersionNumber, formatTimeStamp