Download funasr/utils/dynamic_import.py from ml-resources/FunASR-bmodel: direct link, hf CLI and curl.
- Browser
- Download file 1.74 kB
-
https://huggingface.co/ml-resources/FunASR-bmodel/resolve/main/funasr/utils/dynamic_import.py
- Command line
-
hf download hf://ml-resources/FunASR-bmodel/funasr/utils/dynamic_import.py
-
curl -L -o dynamic_import.py https://huggingface.co/ml-resources/FunASR-bmodel/resolve/main/funasr/utils/dynamic_import.py
1.74 kB
| import importlib.util | |
| import importlib.util | |
| import inspect | |
| import os.path | |
| import sys | |
| def load_module_from_path(file_path): | |
| """ | |
| 从给定的文件路径动态加载模块。 | |
| :param file_path: 模块文件的绝对路径。 | |
| :return: 加载的模块 | |
| """ | |
| module_name = file_path.split("/")[-1].replace(".py", "") | |
| spec = importlib.util.spec_from_file_location(module_name, file_path) | |
| module = importlib.util.module_from_spec(spec) | |
| spec.loader.exec_module(module) | |
| return module | |
| def import_module_from_path(file_path: str): | |
| if file_path.startswith("http"): | |
| from funasr.download.file import download_from_url | |
| file_path = download_from_url(file_path) | |
| file_dir = os.path.dirname(file_path) | |
| # file_name = os.path.basename(file_path) | |
| module_name = file_path.split("/")[-1].replace(".py", "") | |
| if len(file_dir) < 1: | |
| file_dir = "./" | |
| sys.path.append(file_dir) | |
| try: | |
| importlib.import_module(module_name) | |
| print(f"Loading remote code successfully: {file_path}") | |
| except Exception as e: | |
| print(f"Loading remote code failed: {file_path}, {e}") | |
| # | |
| # def load_module_from_path(module_name, file_path): | |
| # """ | |
| # 从给定的文件路径动态加载模块。 | |
| # | |
| # :param module_name: 动态加载的模块的名称。 | |
| # :param file_path: 模块文件的绝对路径。 | |
| # :return: 加载的模块 | |
| # """ | |
| # # 创建加载模块的spec(规格) | |
| # spec = importlib.util.spec_from_file_location(module_name, file_path) | |
| # | |
| # # 根据spec创建模块 | |
| # module = importlib.util.module_from_spec(spec) | |
| # | |
| # # 执行模块的代码来实际加载它 | |
| # spec.loader.exec_module(module) | |
| # | |
| # return module | |