From 1a95b96985993b31eedff012670f12dcc15e54cf Mon Sep 17 00:00:00 2001 From: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com> Date: Mon, 24 May 2021 13:06:43 -0500 Subject: [PATCH] Fixed importing of o3de package modules within the o3de.py script when a relative path is used to invoke it --- scripts/o3de.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/scripts/o3de.py b/scripts/o3de.py index dabb83b068..cc3a14a8c3 100755 --- a/scripts/o3de.py +++ b/scripts/o3de.py @@ -27,18 +27,26 @@ def add_args(parser, subparsers) -> None: # As o3de.py shares the same name as the o3de package attempting to use a regular # from o3de import line tries to import from the current o3de.py script and not the package # So the current script directory is removed from the sys.path temporary - SCRIPT_DIR_REMOVED = False - SCRIPT_DIR = pathlib.Path(__file__).parent.resolve() - while str(SCRIPT_DIR) in sys.path: - SCRIPT_DIR_REMOVED = True - sys.path.remove(str(SCRIPT_DIR)) + script_dir_removed = False + script_abs_dir_removed = False + script_dir = pathlib.Path(__file__).parent + script_abs_dir = pathlib.Path(__file__).parent.resolve() + while str(script_dir) in sys.path: + script_dir_removed = True + sys.path.remove(str(script_dir)) + while str(script_abs_dir) in sys.path: + script_abs_dir_removed = True + # Remove the absolute path to the script_dir as well + sys.path.remove(str(script_abs_dir.resolve())) from o3de import engine_template, global_project, register, print_registration, get_registration, download, \ add_external_subdirectory, remove_external_subdirectory, add_gem_cmake, remove_gem_cmake, add_gem_project, \ remove_gem_project, sha256 - if SCRIPT_DIR_REMOVED: - sys.path.insert(0, str(SCRIPT_DIR)) + if script_abs_dir_removed: + sys.path.insert(0, str(script_abs_dir)) + if script_dir_removed: + sys.path.insert(0, str(script_dir)) # global_project global_project.add_args(subparsers)