如何在Python中解压.rar文件?MacOS环境报错求助
解决MacOS下Python解压.rar文件找不到可执行程序的问题
你遇到的是MacOS上处理RAR文件的常见问题:你的Python解压库(比如patool、pyunpack、rarfile)都只是调用系统级工具的接口,它们本身不包含解压RAR的核心程序。MacOS默认没有预装rar或unrar这类工具,所以即使你安装了对应的Python包,依然会因为找不到底层可执行文件而报错。
咱们一步步来解决:
1. 安装系统级的unrar工具(推荐用Homebrew)
MacOS上最便捷的安装方式是通过Homebrew:
- 如果还没装Homebrew,先在终端执行以下命令完成安装:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - 安装Homebrew后,继续在终端执行命令安装unrar:
brew install unrar
安装完成后,在终端输入unrar,如果出现命令帮助信息,说明安装成功。
2. 确保Anaconda环境能找到unrar
有时候Anaconda的PATH环境变量可能不包含Homebrew的默认安装路径(/usr/local/bin),你可以在Spyder里运行以下代码检查:
import os print(os.environ['PATH'])
如果输出里没有/usr/local/bin,需要手动添加路径:
- 打开终端,编辑你的shell配置文件(比如用zsh的话是
~/.zshrc,bash则是~/.bash_profile):open ~/.zshrc - 在文件末尾添加一行:
export PATH="/usr/local/bin:$PATH" - 保存后执行
source ~/.zshrc(对应bash的话是source ~/.bash_profile)使配置生效,然后重启Spyder。
3. 重新测试解压代码
现在你可以重新运行你的代码了,比如用patool:
import patoolib patoolib.extract_archive('aaa.rar')
或者用更轻量化的rarfile直接操作:
from rarfile import RarFile with RarFile('aaa.rar', 'r') as rar_ref: rar_ref.extractall('.') # 解压到当前目录
额外说明
如果你不想用Homebrew,也可以直接从RAR官方渠道下载Mac版工具,解压后把unrar二进制文件放到/usr/local/bin目录下(需要管理员权限)。
内容的提问来源于stack exchange,提问作者nicc96




