运行slam项目的时候出现报错:FileNotFoundError: "exiftool.exe" is not found, on path or as absolute path,这意味着程序需要调用 ExifTool
来读取视频或图像文件的元数据,但在你的系统中找不到 exiftool.exe
,导致该错误的出现。这是因为 SLAM
管道中的 00_process_videos.py
脚本中调用了 ExifToolHelper
,而这个类依赖于 exiftool
来访问视频文件的元数据。
解决过程:
1、访问exiftool官网下载可执行文件
2、解压后得到exiftool(-k).exe后重命名为exiftool.exe
3、下载https://gitcode.com/gh_mirrors/wi/windows/overview?utm_source=highlight_word_gitcode&word=windows&isLogin=1这个项目并解压,放到E:\project\MODEL\exfitool目录下,然后把第二步重命名后的exiftool.exe放到E:\project\MODEL\exfitool\windows-master即可
4、打开cmd即可执行exiftool
exiftool使用教程参考ExifTool完全入门指南
5、把exiftool.exe的安装路径添加到系统环境遍历PATH中。
1.右键点击此电脑>属性>高级系统设置。
2.点击环境变量。
3.在“系统变量”中找到Path,然后点击“编辑”。
4.在弹出的窗口中,添加exiftool.exe所在的文件夹路径。
5.点击确定保存设置。
6.检查ExifTool是否可用,关闭并重新打开命令提示符或终端,输入以下命令
exiftool -ver
如果显示 ExifTool
的版本号,说明已经正确安装和配置。
6、如果项目中找不到ExifTool,验证 ExifTool
是否可以被脚本找到,如果问题仍然存在,请尝试在 Python 环境中手动调用 ExifTool
,确保它能被脚本找到。你可以运行如下测试代码:
import subprocess
try:
result = subprocess.run(["exiftool", "-ver"], capture_output=True, text=True)
print(f"ExifTool version: {result.stdout}")
except FileNotFoundError:
print("ExifTool not found!")
这个代码片段会直接调用 ExifTool
,并显示版本信息。如果显示版本号,则说明 ExifTool
能够被找到和使用。如果仍然提示找不到,则可能是系统路径设置的问题。
需要在代码中指定ExifTool 的路径,如果你不想修改系统 PATH
或者 ExifTool
仍然找不到,你可以在代码中显式指定 ExifTool
的路径:
在 00_process_videos.py
中,找到如下行:
with ExifToolHelper() as et:
修改为:
with ExifToolHelper(executable='E:/project/MODEL/exfitool/windows-master/exiftool.exe') as et:
这样就能找到exiftool.exe文件了。