From c41a3b1cb851e3ce4e7c2954b8d20147a98d16e5 Mon Sep 17 00:00:00 2001 From: Fabia Serra Arrizabalaga Date: Wed, 22 Feb 2023 00:43:26 +0100 Subject: [PATCH] Pass module name and set __file__ on module to avoid AttributeErrors saying module has no __file__ attribute --- openpype/lib/python_module_tools.py | 2 +- openpype/pipeline/publish/lib.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/openpype/lib/python_module_tools.py b/openpype/lib/python_module_tools.py index 6fad3b547f..9e8e94842c 100644 --- a/openpype/lib/python_module_tools.py +++ b/openpype/lib/python_module_tools.py @@ -28,6 +28,7 @@ def import_filepath(filepath, module_name=None): # Prepare module object where content of file will be parsed module = types.ModuleType(module_name) + module.__file__ = filepath if six.PY3: # Use loader so module has full specs @@ -41,7 +42,6 @@ def import_filepath(filepath, module_name=None): # Execute content and store it to module object six.exec_(_stream.read(), module.__dict__) - module.__file__ = filepath return module diff --git a/openpype/pipeline/publish/lib.py b/openpype/pipeline/publish/lib.py index c51a96f2be..7dcfec4ebc 100644 --- a/openpype/pipeline/publish/lib.py +++ b/openpype/pipeline/publish/lib.py @@ -304,7 +304,7 @@ def publish_plugins_discover(paths=None): continue try: - module = import_filepath(abspath) + module = import_filepath(abspath, mod_name) # Store reference to original module, to avoid # garbage collection from collecting it's global