如何在 Python 中设置 unrar 库的路径?

How to set path to unrar library in Python?

我正在使用 Pycharm 作为我的 IDE (Python 3.7) 并且正在尝试提取受密码保护的 .rar 文件(我知道密码)并从中导入 rarfile unrar 但出现此错误 "LookupError: Couldn't find path to unrar library."

我也尝试将我的导入语句更改为只说 "import rarfile" 但得到了以下错误 "rarfile.RarCannotExec: Unrar not installed?"

我也尝试包含这行代码,基于我在 rarfile 文档中发现的内容:rarfile.UNRAR_TOOL = "unrar" 但是我得到了相同的结果错误。

这是我的代码片段:

from unrar import rarfile

def hacker(file_path):
    passwords = open('pwds.txt', 'r')
    with rarfile.RarFile(file_path) as file:
        for line in passwords:
            try:
                file.pwd = line
                file.extractall()
            except RuntimeError:
                pass


不同的os需要不同的解决方案: 在 Windows 上:

  1. 下载库文件,http://www.rarlab.com/rar/UnRARDLL.exe,安装它;

  2. 你最好选择os默认路径,C:\Program Files (x86)\UnrarDLL\

  3. most 重要的是添加环境路径,varname输入UNRAR_LIB_PATH,注意,一定是!!!。然后如果你的系统是 64 位输入 C:\Program Files (x86)\UnrarDLL\x64\UnRAR64.dll,如果你的系统是 32 位输入 C:\Program Files (x86)\UnrarDLL\UnRAR.dll.

  4. 保存环境路径后,重新运行你的pycharm。

在Linux你需要制作so文件,有点难

  1. 同理,下载lib文件http://www.rarlab.com/rar/unrarsrc-5.4.5.tar.gz,可以选择os最新版本

  2. 下载后解压文件解压,cd unrar,然后make lib,然后make install-lib,我们将得到文件libunrar.so (在 /usr/lib)。

  3. 最后,还需要设置环境路径,vim /etc/profile打开文件profile,在文件末尾添加export UNRAR_LIB_PATH=/usr/lib/libunrar.so。然后保存文件,使用source /etc/profile使环境成功

  4. 重新运行 .py 文件。

资源网址:https://blog.csdn.net/ysy950803/article/details/52939708

除了@tom 对 Windows 10 环境的回答外,以下步骤应该有所帮助:

  1. 通过link下载lib文件并安装。
  2. 为了方便复制以下步骤,选择默认路径,C:\Program Files (x86)\UnrarDLL\
  3. 转到环境变量 window (link) 和 selected 高级。
  4. 单击环境设置。
  5. 在用户变量下,select新建。
  6. 在新用户变量中,将变量名称重命名为UNRAR_LIB_PATH
  7. 到select变量值,select浏览文件。根据您的系统,64 位输入 C:\Program Files (x86)\UnrarDLL\x64\UnRAR64.dll,如果您的系统是 32 位,则输入 C:\Program Files (x86)\UnrarDLL\UnRAR.dll.
  8. 保存环境路径并重新运行 Pycharm.

图示如下,

此外,在你完成 Tom.chen.kang 和 balandongiv 提到的事情之后,如果你使用 32 位 DLL 和 64 位 Python,反之亦然,那么你可能会得到当您尝试导入 unrar 时出现这样的错误:-

OSError: [WinError 193] %1 is not a valid Win32 application

在这种情况下执行此操作:

对于 32 Python & 32 位 DLL 将变量 UNRAR_LIB_PATH 的环境变量更改为:

C:\Program Files (x86)\UnrarDLL\UnRAR.dll

对于 64 位 Python & 64 位 DLL 将变量 UNRAR_LIB_PATH 的环境变量更改为:

C:\Program Files (x86)\UnrarDLL\x64\UnRAR.dll

重新启动您的 Pycharm 或其他开发环境。