Python rarfile模块报RarCannotExec找不到可用工具如何解决
Python rarfile模块解压报RarCannotExec错误解决
问题复现
使用rarfile模块解压RAR文件的测试代码如下:
import rarfile rar_path = r'C:\...\Test.rar' rar_password = '123' # rarfile.UNRAR_TOOL = r'path to what .exe? I cant find it, is this line necessary?' rar = rarfile.RarFile(rar_path) rar.extractall(pwd=rar_password) rar.close()
运行后抛出报错:
rarfile.RarCannotExec: Cannot find working tool
已尝试操作:
- 安装unrar工具并将其所在目录添加到系统PATH环境变量
- 将WinRAR安装目录添加到系统PATH环境变量
- 完成上述操作后重启IDE,报错仍然存在
核心疑问:rarfile.UNRAR_TOOL参数需要指向哪个可执行文件,如何正确配置。
解决方法
rarfile.UNRAR_TOOL参数必须指向UnRAR命令行解压程序,不能指向WinRAR图形界面主程序:- 若本机已安装WinRAR,目标程序为WinRAR安装目录下的
UnRAR.exe,默认安装路径为C:\Program Files\WinRAR\UnRAR.exe - 若单独安装了UnRAR命令行工具,目标程序为安装目录下的
unrar.exe
注意:不要配置为
WinRAR.exe或Rar.exe,前者是图形界面主程序,后者仅支持压缩操作,均无法被rarfile模块正常调用。- 若本机已安装WinRAR,目标程序为WinRAR安装目录下的
- 手动配置路径的参考代码如下,将路径替换为你本机
UnRAR.exe的实际存储路径即可:
import rarfile # 替换为本地UnRAR.exe的实际绝对路径 rarfile.UNRAR_TOOL = r'C:\Program Files\WinRAR\UnRAR.exe' rar_path = r'C:\...\Test.rar' rar_password = '123' rar = rarfile.RarFile(rar_path) rar.extractall(pwd=rar_password) rar.close()
- 配置后仍报错的排查点:
- 手动打开配置的路径,确认对应位置确实存在
UnRAR.exe文件,不要凭默认路径直接复制使用 - 确认Python位数和UnRAR程序位数一致:32位Python需搭配32位UnRAR,64位Python需搭配64位UnRAR,位数不匹配会导致调用失败
- 配置完成后重启运行代码的IDE/终端,避免旧环境变量缓存导致配置不生效
- 手动打开配置的路径,确认对应位置确实存在
内容的提问来源于stack exchange,提问作者adrian88888888
相关产品推荐
相关产品推荐

