From 72006b38d1b755fc5e6f8d116adc5146a7bee573 Mon Sep 17 00:00:00 2001 From: Neucrack Date: Tue, 7 May 2024 15:31:36 +0800 Subject: [PATCH] fix parse pyi failed error in maixcam platform if no pyi file generated --- components/maix/gen_api.py | 3 +++ project.py | 11 ++++++++--- setup.py | 5 ++++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/components/maix/gen_api.py b/components/maix/gen_api.py index e43c335..143a1cb 100644 --- a/components/maix/gen_api.py +++ b/components/maix/gen_api.py @@ -82,6 +82,9 @@ def update_py_def_from_stub_files(api_tree, stub): maix_pyi_root = os.path.join(stub, "maix", "_maix") for k, v in api_tree["members"]["maix"]["members"].items(): def parse_module(pyi_path, k, v): + if not os.path.exists(pyi_path): + print(f"[WARN] can not find {pyi_path}, you can build for linux platform first to generate this file") + return items = parse_pyi(pyi_path) for m_k, m_v in v["members"].items(): if m_v["type"] == "func": diff --git a/project.py b/project.py index bfb2a1e..478c983 100755 --- a/project.py +++ b/project.py @@ -18,7 +18,7 @@ def get_sdk_path(): # 1. get SDK absolute path from MAIXCDK_PATH env try: - if os.environ[sdk_env_name] and os.path.exists(os.environ[sdk_env_name]): + if os.environ[sdk_env_name]: sdk_path = os.environ[sdk_env_name] except Exception: pass @@ -29,9 +29,14 @@ def get_sdk_path(): sdk_path = path # 3. check if MaixCDK path valid - if not sdk_path or not os.path.exists(sdk_path): + if not sdk_path: print("") - print("Error: can not find MaixCDK, please set MAIXCDK_PATH env to MaixCDK directory") + print("Error: can not find MaixCDK, please set MAIXCDK_PATH env to MaixCDK directory by `export MAIXCDK_PATH=xxxxx`") + print("") + sys.exit(1) + if not os.path.exists(sdk_path): + print("") + print(f"Error: MaixCDK set to {sdk_path}, but not exists!") print("") sys.exit(1) return os.path.abspath(sdk_path) diff --git a/setup.py b/setup.py index f0196fd..2686654 100644 --- a/setup.py +++ b/setup.py @@ -120,7 +120,10 @@ def get_python_version(): # generate api documentation # COMMAND ${python} -u ${CMAKE_CURRENT_SOURCE_DIR}/gen_api.py -o ${maixpy_wrapper_src} --doc ${PROJECT_PATH}/docs/api --sdk_path ${SDK_PATH} -maixcdk_path = os.environ.get("MAIXCDK_PATH", None) +maixcdk_path = os.path.abspath(os.environ.get("MAIXCDK_PATH", None)) +maixpy_path = os.path.abspath(os.getcwd()) +if maixcdk_path.startswith(maixpy_path): + raise Exception("DO NOT put MaixCDK in MaixPy folder, please put MaixCDK in other place and set MAIXCDK_PATH environmenet variable by `export MAIXCDK_PATH=xxxxx`") if not maixcdk_path: raise Exception("No environment variable MAIXCDK_PATH, please set first by `export MAIXCDK_PATH=xxxxx`") ret = os.system(f"python -u components/maix/gen_api.py --doc docs/api --sdk_path {maixcdk_path}")