import ctypes import glob import importlib.metadata import json import platform import torch packages = ["torch", "torchvision", "mmcv", "mmengine", "mmdet", "mmpose", "numpy", "opencv-python-headless", "cyndilib", "fastapi", "uvicorn", "websockets", "psutil", "nvidia-ml-py"] ndi_path = glob.glob("/opt/conda/lib/python3.10/site-packages/cyndilib/wrapper/bin/*/libndi.so")[0] ndi = ctypes.CDLL(ndi_path) ndi.NDIlib_version.restype = ctypes.c_char_p print(json.dumps({ "python": platform.python_version(), "packages": {p: importlib.metadata.version(p) for p in packages}, "torch_cuda_build": torch.version.cuda, "cudnn": torch.backends.cudnn.version(), "cuda_available": torch.cuda.is_available(), "cuda_device": torch.cuda.get_device_name(0), "ndi_runtime_version": ndi.NDIlib_version().decode(), "ndi_runtime_path": ndi_path, }, indent=2))