Skip to content
Permalink
Browse files

Merge pull request #9851 from dmarteau/fix-unload-plugin-path

Remove plugin module path  when unloading
  • Loading branch information
rldhont committed Apr 25, 2019
2 parents 2407934 + 6af744d commit 3c8a9e6f65260ee27d8b2721944bb78e0ec6a43f
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
@@ -452,12 +452,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 3c8a9e6

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