c9df354
diff --git a/align.py b/align.py
c9df354
index c5a66fe..9067676 100755
c9df354
--- a/align.py
c9df354
+++ b/align.py
c9df354
@@ -241,8 +241,13 @@ try:
c9df354
         #     log.error("Unable to load Qt4 support. Is it installed?")
c9df354
         #     sys.exit(1)
c9df354
         QApplication, ui_package = utils.import_dialog(ui_toolkit)
c9df354
-        ui = import_module(ui_package + ".aligndialog")
d6b7a48
d6b7a48
+        try:
c9df354
+            ui = import_module(ui_package + ".aligndialog")
c9df354
+        except ModuleNotFoundError:
c9df354
+            log.error('HPLIP GUI is not available - use interactive mode '
c9df354
+                      '(option \'-i\') or install hplip-gui package.')
c9df354
+            sys.exit(1)
d6b7a48
c9df354
         #try:
c9df354
         if 1:
c9df354
diff --git a/base/queues.py b/base/queues.py
c9df354
index 04c37b1..dec7fe9 100755
c9df354
--- a/base/queues.py
c9df354
+++ b/base/queues.py
c9df354
@@ -375,8 +375,14 @@ def main_function(passwordObj = None, mode = GUI_MODE, ui_toolkit= UI_TOOLKIT_QT
c9df354
             sys.exit(1)
d6b7a48
c9df354
         QApplication, ui_package = utils.import_dialog(ui_toolkit)
c9df354
-        ui = import_module(ui_package + ".queuesconf")
c9df354
-        setupdialog = import_module(ui_package + ".setupdialog")
c9df354
+
c9df354
+        try:
c9df354
+            ui = import_module(ui_package + ".queuesconf")
c9df354
+            setupdialog = import_module(ui_package + ".setupdialog")
c9df354
+        except ModuleNotFoundError:
c9df354
+            log.error('HPLIP GUI is not available - use interactive mode '
c9df354
+                      '(option \'-i\') or install hplip-gui package.')
c9df354
+            sys.exit(1)
c9df354
c9df354
         app = QApplication(sys.argv)
c9df354
         dialog = ui.QueuesDiagnose(None, "","",QUEUES_MSG_SENDING,passwordObj)
c9df354
diff --git a/base/utils.py b/base/utils.py
c9df354
index cde819f..0d6e9ff 100644
c9df354
--- a/base/utils.py
c9df354
+++ b/base/utils.py
c9df354
@@ -1,4 +1,4 @@
c9df354
-#!/usr/bin/env python
c9df354
+#!/usr/bin/python3
c9df354
 # -*- coding: utf-8 -*-
c9df354
 #
c9df354
 # (c) Copyright 2001-2018 HP Development Company, L.P.
c9df354
@@ -734,6 +734,13 @@ def checkPyQtImport(): # qt3
64f6bd8
         if os.getenv('DISPLAY') and os.getenv('STARTED_FROM_MENU'):
64f6bd8
             no_qt_message_gtk()
d6b7a48
64f6bd8
+        # hplip-gui sub-package (Fedora)
64f6bd8
+        try:
64f6bd8
+            import ui
64f6bd8
+        except ImportError:
64f6bd8
+            log.error("hplip-gui not installed.  GUI not available. Exiting.")
64f6bd8
+            return False
9fb915e
+
64f6bd8
         log.error("PyQt not installed. GUI not available. Exiting.")
64f6bd8
         return False
d6b7a48
c9df354
@@ -784,7 +791,8 @@ def checkPyQtImport4():
78217e9
         import PyQt5
78217e9
         import ui5
78217e9
     else:
78217e9
-        log.debug("HPLIP is not installed properly or is installed without graphical support. Please reinstall HPLIP again")
78217e9
+        # hplip-gui sub-package (Fedora) requires python3-qt5
64f6bd8
+        log.error("Install the hplip-gui package for graphical support.")
64f6bd8
         return False
78217e9
     return True
d6b7a48
c9df354
@@ -2456,6 +2464,7 @@ def checkPyQtImport45():
911f38a
     except ImportError as e:
911f38a
         log.debug(e)
d6b7a48
911f38a
+    log.error("Install the hplip-gui package for graphical support.")
911f38a
     raise ImportError("GUI Modules PyQt4 and PyQt5 are not installed")
d6b7a48
d6b7a48
c9df354
@@ -2477,6 +2486,7 @@ def import_dialog(ui_toolkit):
73b7a25
             return  (QApplication, "ui4")
73b7a25
         except ImportError as e:
73b7a25
             log.error(e)
73b7a25
+            log.error("Unable to load Qt support. Is hplip-gui package installed?")
73b7a25
             sys.exit(1)
73b7a25
     elif ui_toolkit == "qt5":
73b7a25
         try:
c9df354
@@ -2485,9 +2495,7 @@ def import_dialog(ui_toolkit):
73b7a25
             return (QApplication, "ui5")
73b7a25
         except ImportError as e:
73b7a25
             log.error(e)
73b7a25
-            sys.exit(1)
73b7a25
-        else:
73b7a25
-            log.error("Unable to load Qt support. Is it installed?")
73b7a25
+            log.error("Unable to load Qt support. Is hplip-gui package installed?")
73b7a25
             sys.exit(1)
d6b7a48
d6b7a48
c9df354
diff --git a/clean.py b/clean.py
c9df354
index 3d41f04..0141f23 100755
c9df354
--- a/clean.py
c9df354
+++ b/clean.py
c9df354
@@ -193,8 +193,13 @@ try:
c9df354
     else:
c9df354
c9df354
         QApplication, ui_package = utils.import_dialog(ui_toolkit)
c9df354
-        ui = import_module(ui_package + ".cleandialog")
c9df354
c9df354
+        try:
c9df354
+            ui = import_module(ui_package + ".cleandialog")
c9df354
+        except ModuleNotFoundError:
c9df354
+            log.error('HPLIP GUI is not available - use interactive mode '
c9df354
+                      '(option \'-i\') or install hplip-gui package.')
c9df354
+            sys.exit(1)
c9df354
c9df354
         #try:
c9df354
         if 1:
c9df354
diff --git a/diagnose_plugin.py b/diagnose_plugin.py
c9df354
index e4e6ebd..1bcd8c3 100755
c9df354
--- a/diagnose_plugin.py
c9df354
+++ b/diagnose_plugin.py
c9df354
@@ -94,7 +94,14 @@ if mode == GUI_MODE:
c9df354
         #     sys.exit(1)
c9df354
c9df354
         QApplication, ui_package = utils.import_dialog(ui_toolkit)
c9df354
-        ui = import_module(ui_package + ".plugindiagnose")
c9df354
+
c9df354
+        try:
c9df354
+            ui = import_module(ui_package + ".plugindiagnose")
c9df354
+        except ModuleNotFoundError:
c9df354
+            log.error('HPLIP GUI is not available - use interactive mode '
c9df354
+                      '(option \'-i\') or install hplip-gui package.')
c9df354
+            sys.exit(1)
c9df354
+
c9df354
         from installer import pluginhandler
c9df354
c9df354
         app = QApplication(sys.argv)
c9df354
diff --git a/fab.py b/fab.py
c9df354
index 9bd6166..e11ebc4 100755
c9df354
--- a/fab.py
c9df354
+++ b/fab.py
c9df354
@@ -854,8 +854,13 @@ if mode == GUI_MODE:
c9df354
     else: # qt4
c9df354
c9df354
         QApplication, ui_package = utils.import_dialog(ui_toolkit)
c9df354
-        ui = import_module(ui_package + ".fabwindow")
c9df354
c9df354
+        try:
c9df354
+            ui = import_module(ui_package + ".fabwindow")
c9df354
+        except ModuleNotFoundError:
c9df354
+            log.error('HPLIP GUI is not available - use interactive mode '
c9df354
+                      '(option \'-i\') or install hplip-gui package.')
c9df354
+            sys.exit(1)
c9df354
c9df354
         log.set_module("hp-fab(qt4)")
c9df354
c9df354
diff --git a/firmware.py b/firmware.py
c9df354
index 33e044d..a38058b 100755
c9df354
--- a/firmware.py
c9df354
+++ b/firmware.py
c9df354
@@ -118,7 +118,13 @@ try:
c9df354
            #  log.error("Unable to load Qt4 support. Is it installed?")
c9df354
            #  sys.exit(1)
c9df354
             QApplication, ui_package = utils.import_dialog(ui_toolkit)
c9df354
-            ui = import_module(ui_package + ".firmwaredialog")
c9df354
+
c9df354
+            try:
c9df354
+                ui = import_module(ui_package + ".firmwaredialog")
c9df354
+            except ModuleNotFoundError:
c9df354
+                log.error('HPLIP GUI is not available - use interactive mode '
c9df354
+                          '(option \'-i\') or install hplip-gui package.')
c9df354
+                sys.exit(1)
c9df354
c9df354
         if ui_toolkit == 'qt3':
c9df354
            try:
c9df354
diff --git a/info.py b/info.py
c9df354
index 6c28531..5b05eda 100755
c9df354
--- a/info.py
c9df354
+++ b/info.py
c9df354
@@ -172,7 +172,13 @@ try:
c9df354
c9df354
     else: # GUI mode
c9df354
         QApplication, ui_package = utils.import_dialog(ui_toolkit)
c9df354
-        ui = import_module(ui_package + ".infodialog")
c9df354
+
c9df354
+        try:
c9df354
+            ui = import_module(ui_package + ".infodialog")
c9df354
+        except ModuleNotFoundError:
c9df354
+            log.error('HPLIP GUI is not available - use interactive mode '
c9df354
+                      '(option \'-i\') or install hplip-gui package.')
c9df354
+            sys.exit(1)
c9df354
c9df354
         if 1:
c9df354
             app = QApplication(sys.argv)
d6b7a48
diff --git a/plugin.py b/plugin.py
c9df354
index f54f726..58d6006 100755
d6b7a48
--- a/plugin.py
d6b7a48
+++ b/plugin.py
c9df354
@@ -252,7 +252,14 @@ if mode == GUI_MODE:
349828d
         #     clean_exit(1)
d6b7a48
349828d
         QApplication, ui_package = utils.import_dialog(ui_toolkit)
349828d
-        ui = import_module(ui_package + ".plugindialog")
c9df354
+
349828d
+        try:
349828d
+            ui = import_module(ui_package + ".plugindialog")
349828d
+        except ModuleNotFoundError:
c9df354
+            log.error('HPLIP GUI is not available - use interactive mode '
c9df354
+                      '(option \'-i\') or install hplip-gui package.')
c9df354
+            sys.exit(1)
c9df354
+
349828d
         if ui_toolkit == "qt5":
349828d
             from PyQt5.QtWidgets import QMessageBox
349828d
         elif ui_toolkit == "qt4":
c9df354
diff --git a/sendfax.py b/sendfax.py
c9df354
index 491c8f9..0815ee7 100755
c9df354
--- a/sendfax.py
c9df354
+++ b/sendfax.py
c9df354
@@ -211,7 +211,13 @@ if mode == GUI_MODE:
c9df354
         #     sys.exit(1)
c9df354
c9df354
         QApplication, ui_package = utils.import_dialog(ui_toolkit)
c9df354
-        ui = import_module(ui_package + ".sendfaxdialog")
c9df354
+
c9df354
+        try:
c9df354
+            ui = import_module(ui_package + ".sendfaxdialog")
c9df354
+        except ModuleNotFoundError:
c9df354
+            log.error('HPLIP GUI is not available - use interactive mode '
c9df354
+                      '(option \'-i\') or install hplip-gui package.')
c9df354
+            sys.exit(1)
c9df354
c9df354
         app = QApplication(sys.argv)
c9df354
         dlg = ui.SendFaxDialog(None, printer_name, device_uri, mod.args)
d6b7a48
diff --git a/setup.py b/setup.py
c9df354
index 2608f95..b09a8ef 100755
d6b7a48
--- a/setup.py
d6b7a48
+++ b/setup.py
c9df354
@@ -310,7 +310,12 @@ if mode == GUI_MODE:
c9df354
         #     clean_exit(1)
c9df354
c9df354
         QApplication, ui_package = utils.import_dialog(ui_toolkit)
c9df354
-        ui = import_module(ui_package + ".setupdialog")
c9df354
+        try:
c9df354
+            ui = import_module(ui_package + ".setupdialog")
c9df354
+        except ModuleNotFoundError:
c9df354
+            log.error('HPLIP GUI is not available - use interactive mode '
c9df354
+                      '(option \'-i\') or install hplip-gui package.')
c9df354
+            sys.exit(1)
c9df354
c9df354
         app = QApplication(sys.argv)
c9df354
         log.debug("Sys.argv=%s printer_name=%s param=%s jd_port=%s device_uri=%s remove=%s" % (sys.argv, printer_name, param, jd_port, device_uri, remove))
c9df354
diff --git a/testpage.py b/testpage.py
c9df354
index a5ed2bc..2a707a1 100755
c9df354
--- a/testpage.py
c9df354
+++ b/testpage.py
c9df354
@@ -77,7 +77,13 @@ try:
c9df354
         #     log.error("Unable to load Qt4 support. Is it installed?")
c9df354
         #     sys.exit(1)
c9df354
         QApplication, ui_package = utils.import_dialog(ui_toolkit)
c9df354
-        ui = import_module(ui_package + ".printtestpagedialog")
c9df354
+
c9df354
+        try:
c9df354
+            ui = import_module(ui_package + ".printtestpagedialog")
c9df354
+        except ModuleNotFoundError:
c9df354
+            log.error('HPLIP GUI is not available - use interactive mode '
c9df354
+                      '(option \'-i\') or install hplip-gui package.')
c9df354
+            sys.exit(1)
c9df354
c9df354
         log.set_module("%s(UI)" % __mod__)
c9df354