在matlab中安装vot toolkit 这个工具包,运行时出现错误:错误使用 compile_trax TraX library not found. Stopping.
时间: 2024-03-02 19:52:49 浏览: 79
这个错误提示表明在使用 `compile_trax` 命令时,MATLAB 无法找到 Trax 库。要解决这个问题,你需要先确保已经正确地安装了 Trax 库,并将其路径添加到 MATLAB 的环境变量中。具体步骤如下:
1. 首先,你需要按照上一条回答中的步骤,在系统中安装 Trax 库。建议使用 pip 命令来安装,以确保安装的版本和依赖项正确。
2. 安装完成后,找到 Trax 库所在的路径。在命令行中输入以下命令,可以查看 Trax 库的路径:
```
python -c "import trax; print(trax.__path__)"
```
这个命令会输出 Trax 库所在的路径。将这个路径记下来,后续会用到。
3. 在 MATLAB 中设置环境变量。在 MATLAB 命令窗口中输入以下命令:
```
setenv('LD_LIBRARY_PATH', [getenv('LD_LIBRARY_PATH') ':/path/to/trax/library'])
```
将上面的 `/path/to/trax/library` 替换为 Trax 库的路径,注意路径中的斜杠方向需要和你的系统相匹配。
4. 重新启动 MATLAB,尝试使用 `compile_trax` 命令。如果一切正常,你应该能够成功编译 Trax 库,并使用 VOT toolkit。
相关问题
matlab在安装vot toolkit这个工具包时出现错误:错误使用 compile_trax ,TraX library not found. Stopping.
这个错误提示是由于 VOT Toolkit 无法找到 TraX 库导致的。TraX 是一种用于目标跟踪的通信协议,VOT Toolkit 需要使用 TraX 库才能正常运行。
要解决这个问题,您需要安装 TraX 库并将其添加到系统路径中。首先,您可以从 TraX Github 页面(https://github.com/votchallenge/trax)下载 TraX 库的源代码。然后,按照以下步骤进行安装:
1. 解压 TraX 源代码包。
2. 打开终端或命令提示符窗口,并转到 TraX 源代码目录。
3. 运行以下命令编译 TraX 库:
- 如果您使用的是 Linux 或 macOS 系统,请运行以下命令:
```
make
```
- 如果您使用的是 Windows 系统,请运行以下命令:
```
nmake -f Makefile.win
```
4. 安装 TraX 库。在 Linux 或 macOS 系统上,运行以下命令:
```
sudo make install
```
在 Windows 系统上,将编译得到的 trax.dll 文件复制到系统目录(例如 C:\Windows\System32)中。
5. 将 TraX 库添加到系统路径中。在 Linux 或 macOS 系统上,打开终端窗口并运行以下命令:
```
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
```
在 Windows 系统上,打开“控制面板”->“系统和安全”->“系统”->“高级系统设置”->“环境变量”,并将 TraX 库所在的目录添加到“Path”环境变量中。
完成上述步骤后,再次尝试安装 VOT Toolkit,应该就可以成功了。
self = ChainMap({}, {'im30': 'pax_branch_7.0_3.xx_release', 'im30v2': 'A133_V2_4_T509_pax_branch_release', 'a80': 'pax_branch...3700': 'MTK_android11_pax_branch_user', 'a8300': 'A133_V2_4_pax_branch_release', 'a6650': 'A6650_pax_branch_user'}, {}) key = 'a80s' def __missing__(self, key): > raise KeyError(key) E KeyError: 'a80s' /usr/lib/python3.8/collections/__init__.py:890: KeyError During handling of the above exception, another exception occurred: request = <SubRequest 'upgrade_os_by_fastboot' for <Function test_Antutu_Score_PER1>> get_device_in_config = ('172.16.120.187:6714', '172.16.25.170', 'false', 'A80S', True) get_sn_fastboot_sn = {'1240047508': '241050374620301a044f', '1240193065': '140050344410142b03ce', '1640000442': '1400788643245025084f', '2210000495': 'NRUO65VOT4TWON99', ...} @pytest.fixture(scope='session', autouse=False) def upgrade_os_by_fastboot(request, get_device_in_config, get_sn_fastboot_sn): """ 更新固件 """ _serial, ip, regex, device_name, is_version_test = get_device_in_config # 一些配置参数 # _serial = get_serial logger.info(exec_cmd("adb devices -l")) if util.wait_for_device(_serial, timeout=10 * 60) is False: assert False, "{} device is offline".format(_serial) return # 优先从命令行获取 fastboot_sn = request.config.getoption(CmdOption.DEVICE_FASTBOOT.value) if fastboot_sn is None: fastboot_sn = get_sn_fastboot_sn.get(_serial) if fastboot_sn is None: logger.warning(f"也许你需要在{get_sn_fastboot_sn_map_path()}配置对应的fastboot sn") fastboot_sn = _serial path = os.getcwd() logger.info("upgrade_os_by_fastboot path:%s" % path) logger.info(exec_cmd("rm -rf ./Uniphiz_*")) logger.info(exec_cmd("rm -rf ./PayDroid_*")) logger.info(exec_cmd("rm -rf ./IM30_A80_PayDroid_*")) if is_version_test is False: # CI的日常测试任务 upgrade_result = upgrade_now(_serial, device_name, fastboot_sn, "", "fastboot") else: # CI的版本测试任务 > upgrade_result = upgrade_now_version_test(_serial, device_name, fastboot_sn, "", "fastboot") ../CI_Code_Pull/tests/conftest.py:209: 这是什么错误
这是一个KeyError错误。在你的代码中,`__missing__`方法被调用时,抛出了一个KeyError异常,因为在字典中找不到键为'a80s'的值。
在这段代码中,你定义了一个名为`self`的ChainMap对象,并在其中存储了多个字典。当你使用`self['a80s']`来获取键为'a80s'的值时,由于字典中没有该键,触发了`__missing__`方法。
在`__missing__`方法中,你抛出了一个KeyError异常,该异常表示字典中找不到指定的键。然后,在捕获到这个KeyError异常后,又触发了另一个异常,导致整个错误堆栈。
要解决这个问题,你可以检查一下是否正确设置了ChainMap对象中的字典,并确保你要获取的键存在于其中。也可以考虑在`__missing__`方法中提供一个默认值,以避免抛出异常。
阅读全文