diff --git a/gns3/console_cmd.py b/gns3/console_cmd.py index 5e630f43..b1d0673a 100644 --- a/gns3/console_cmd.py +++ b/gns3/console_cmd.py @@ -22,7 +22,7 @@ Handles commands typed in the GNS3 console. import sys import cmd import struct -import sip +from .qt import sip import json from .node import Node diff --git a/gns3/console_view.py b/gns3/console_view.py index 10edb860..365f7bc1 100644 --- a/gns3/console_view.py +++ b/gns3/console_view.py @@ -16,7 +16,7 @@ # along with this program. If not, see . import sys -import sip +from .qt import sip import struct import inspect import datetime diff --git a/gns3/crash_report.py b/gns3/crash_report.py index bc37d061..a9379e16 100644 --- a/gns3/crash_report.py +++ b/gns3/crash_report.py @@ -132,7 +132,7 @@ class CrashReport: def _add_qt_information(self, context): try: from .qt import QtCore - import sip + from .qt import sip except ImportError: return context context["psutil:version"] = psutil.__version__ diff --git a/gns3/dialogs/appliance_wizard.py b/gns3/dialogs/appliance_wizard.py index 06f2bf2a..8ab386b4 100644 --- a/gns3/dialogs/appliance_wizard.py +++ b/gns3/dialogs/appliance_wizard.py @@ -16,7 +16,7 @@ # along with this program. If not, see . import os -import sip +from ..qt import sip import shutil from ..qt import QtWidgets, QtCore, QtGui, qpartial, qslot diff --git a/gns3/graphics_view.py b/gns3/graphics_view.py index 517bfaaf..da058385 100644 --- a/gns3/graphics_view.py +++ b/gns3/graphics_view.py @@ -21,7 +21,7 @@ Graphical view on the scene where items are drawn. import logging import os -import sip +from .qt import sip import sys from .qt import QtCore, QtGui, QtNetwork, QtWidgets, qpartial, qslot diff --git a/gns3/http_client.py b/gns3/http_client.py index c0ceca69..6993bf58 100644 --- a/gns3/http_client.py +++ b/gns3/http_client.py @@ -15,7 +15,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -import sip +from .qt import sip import json import copy import http diff --git a/gns3/items/node_item.py b/gns3/items/node_item.py index cac82e70..b4ec7930 100644 --- a/gns3/items/node_item.py +++ b/gns3/items/node_item.py @@ -19,7 +19,7 @@ Graphical representation of a node on the QGraphicsScene. """ -import sip +from ..qt import sip from ..qt import QtCore, QtGui, QtWidgets, QtSvg, qslot from ..qt.qimage_svg_renderer import QImageSvgRenderer diff --git a/gns3/link.py b/gns3/link.py index 1cd634c0..323823b1 100644 --- a/gns3/link.py +++ b/gns3/link.py @@ -21,7 +21,7 @@ Manages and stores everything needed for a connection between 2 devices. import os import re -import sip +from .qt import sip import uuid from .qt import QtCore, QtWidgets diff --git a/gns3/nodes_view.py b/gns3/nodes_view.py index 463a63fe..16f51ed4 100644 --- a/gns3/nodes_view.py +++ b/gns3/nodes_view.py @@ -22,7 +22,7 @@ on the QGraphics scene. import tempfile import json -import sip +from .qt import sip from .qt import QtCore, QtGui, QtWidgets, qpartial from .modules import MODULES diff --git a/gns3/ports/port.py b/gns3/ports/port.py index 66776a33..3425df0a 100644 --- a/gns3/ports/port.py +++ b/gns3/ports/port.py @@ -19,7 +19,7 @@ Base class for port objects. """ -import sip +from ..qt import sip from ..qt import qslot diff --git a/gns3/progress.py b/gns3/progress.py index 4f167bbd..33135513 100644 --- a/gns3/progress.py +++ b/gns3/progress.py @@ -15,7 +15,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -import sip +from .qt import sip import time from contextlib import contextmanager diff --git a/gns3/qt/__init__.py b/gns3/qt/__init__.py index b8d9550e..ae88c4bf 100644 --- a/gns3/qt/__init__.py +++ b/gns3/qt/__init__.py @@ -24,7 +24,6 @@ Compatibility layer for Qt bindings, so it is easier to switch to PySide if need import sys -import sip import os import re import inspect @@ -33,12 +32,17 @@ import functools import logging log = logging.getLogger("qt/__init__.py") +try: + import sip +except ImportError: + from PyQt5 import sip from PyQt5 import QtCore, QtGui, QtNetwork, QtWidgets, Qt sys.modules[__name__ + '.QtCore'] = QtCore sys.modules[__name__ + '.QtGui'] = QtGui sys.modules[__name__ + '.QtNetwork'] = QtNetwork sys.modules[__name__ + '.QtWidgets'] = QtWidgets sys.modules[__name__ + '.Qt'] = Qt +sys.modules[__name__ + '.sip'] = sip try: from PyQt5 import QtSvg diff --git a/gns3/utils/progress_dialog.py b/gns3/utils/progress_dialog.py index b6a84af9..9742e1b3 100644 --- a/gns3/utils/progress_dialog.py +++ b/gns3/utils/progress_dialog.py @@ -19,7 +19,7 @@ Progress dialog that blocking tasks (file operations, network connections etc.) """ -import sip +from ..qt import sip from gns3.version import __version__ from ..qt import QtWidgets, QtCore, qslot diff --git a/gns3/utils/wait_for_lambda_worker.py b/gns3/utils/wait_for_lambda_worker.py index 78a5207a..d24a3cb0 100644 --- a/gns3/utils/wait_for_lambda_worker.py +++ b/gns3/utils/wait_for_lambda_worker.py @@ -19,7 +19,7 @@ Thread showing a progress dialog and running the code from a lambda """ -import sip +from ..qt import sip from ..qt import QtCore