You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Python的rarfile模块解压RAR文件时持续报错的问题

解决rarfile库解压RAR文件时的Unrar not installed错误

嘿,我之前也碰到过完全一样的问题!这个错误的根源其实很直白:rarfile Python库本身只是个封装层,它没办法独立完成RAR文件的解压工作,必须依赖系统里的unrar命令行工具才能正常运行。下面是一步步解决的具体办法:

你的问题回顾

你写的解压代码如下:

import rarfile
epath='C:\Users\sidharth.m\Desktop\Rar\xyz.rar'
def unrar(file):
    rf = rarfile.RarFile(file)
    rf.extractall()
unrar(epath)

运行时抛出了这个错误:

Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\site-packages\rarfile.py", line 2816, in custom_popen
raise RarCannotExec("Unrar not installed? (rarfile.UNRAR_TOOL=%r)" % UNRAR_TOOL)
rarfile.RarCannotExec: Unrar not installed? (rarfile.UNRAR_TOOL='unrar')

具体解决步骤

1. 先安装Unrar工具

  • Windows系统:下载官方的Unrar工具(不用安装完整的WinRAR,单独的Unrar工具就够用),安装完成后记得把它的安装路径(比如C:\Program Files\WinRAR)添加到系统的PATH环境变量里。
  • Linux/macOS:直接用包管理器安装:
    • Ubuntu/Debian:sudo apt-get install unrar
    • macOS:brew install unrar(需要先安装Homebrew)

2. 修正你的代码

有两个细节需要调整:

  • 路径字符串里的反斜杠会被当成转义字符,所以要加r前缀变成原始字符串,或者用双反斜杠\\避免转义问题
  • 如果没把Unrar加到系统环境变量,就在代码里手动指定它的路径

修正后的代码示例:

import rarfile

# 若未将Unrar加入PATH,手动指定工具路径(以Windows为例)
rarfile.UNRAR_TOOL = r"C:\Program Files\WinRAR\UnRAR.exe"

# 用原始字符串避免路径转义问题
epath = r'C:\Users\sidharth.m\Desktop\Rar\xyz.rar'

def unrar(file):
    rf = rarfile.RarFile(file)
    # 如需解压到指定路径,给extractall传目标路径参数,比如:
    # rf.extractall(r"C:\Users\sidharth.m\Desktop\MyExtractedFiles")
    rf.extractall()

unrar(epath)

3. 验证是否生效

打开命令提示符(Windows)或终端(Linux/macOS),输入unrar,如果能看到一堆命令提示信息,说明Unrar已经能被系统正常识别,这时候再运行你的Python代码就可以正常解压了。

内容的提问来源于stack exchange,提问作者SalazarSid

火山引擎 最新活动