Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Merge pull request #9851 from dmarteau/fix-unload-plugin-path
Remove plugin module path when unloading
- Loading branch information
Showing
with
14 additions
and
3 deletions.
-
+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] |
|
|
|
|
|