tvm_book.tvm_ext.libinfo 源代码
"""libtvm_ext.so 库信息"""
import sys, os
import ctypes
from tvm._ffi.libinfo import find_lib_path
[文档]
def load_lib(name: str|list[str]|None=None, search_path: str|list[str]|None=None):
"""通过搜索可能的路径加载库
Arg:
name: 需要导入的库名称(比如 ``libtvm_ext.so``),可为空(则为 ``libtvm.so``),也可为名称列表(暂未实现)
search_path: 搜索路径,可为空,也可为名称列表
"""
lib_path = find_lib_path(name=name, search_path=search_path)
# 在 Python 3.8 之后,需要在 Windows 中显式添加 dll 搜索路径
if sys.platform.startswith("win32") and sys.version_info >= (3, 8):
from tvm._ffi.libinfo import get_dll_directories
for path in get_dll_directories():
os.add_dll_directory(path)
lib = ctypes.CDLL(lib_path[0], ctypes.RTLD_GLOBAL)
if hasattr(lib, "TVMGetLastError"):
lib.TVMGetLastError.restype = ctypes.c_char_p
return lib, os.path.basename(lib_path[0])