Skip to content
Permalink
Browse files

Merge pull request #9863 from qgis/backport-9851-to-release-3_6

[Backport release-3_6] Remove plugin module path  when unloading
  • Loading branch information
m-kuhn committed Apr 26, 2019
2 parents 11edd8f + 9bfb95a commit 1c86308d76c00fd248fee99e8312589cb6fb1a59
Showing with 14 additions and 3 deletions.
  1. +14 −3 python/utils.py
@@ -28,7 +28,7 @@
"""

from qgis.PyQt.QtCore import QCoreApplication, QLocale, QThread
from qgis.PyQt.QtCore import QCoreApplication, QLocale, QThread, qDebug
from qgis.PyQt.QtWidgets import QPushButton, QApplication
from qgis.core import Qgis, QgsMessageLog, qgsfunction, QgsMessageOutput
from qgis.gui import QgsMessageBar
@@ -411,12 +411,23 @@ def _unloadPluginModules(packageName):
if hasattr(sys.modules[mod], 'qCleanupResources'):
sys.modules[mod].qCleanupResources()
except:
pass
# Print stack trace for debug
qDebug("qCleanupResources error:\n%s" % traceback.format_exc())

# try removing path
if hasattr(sys.modules[mod], '__path__'):
for path in sys.modules[mod].__path__:
try:
sys.path.remove(path)
except ValueError:
# Discard if path is not there
pass

# try to remove the module from python
try:
del sys.modules[mod]
except:
pass
qDebug("Error when removing module:\n%s" % traceback.format_exc())
# remove the plugin entry
del _plugin_modules[packageName]

0 comments on commit 1c86308

Please sign in to comment.
You can’t perform that action at this time.