How to set path to unrar library in Python?

时间:2019-04-08 13:07:16

标签: python-3.x pycharm rar unrar

I am using Pycharm as my IDE (Python 3.7) and am trying to extract a password protected .rar file (I know the password) and have imported rarfile from unrar but am getting this error "LookupError: Couldn't find path to unrar library."

I also attempted changing my import statement to just say "import rarfile" but instead got the following error "rarfile.RarCannotExec: Unrar not installed?"

I also tried including this line of code, based on something I found in the rarfile documentation: rarfile.UNRAR_TOOL = "unrar" however I got the same errors.

Here is a snippet of my code:

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


3 个答案:

答案 0 :(得分:2)

除了针对Windows 10环境的@tom答案之外,以下步骤也应有所帮助:

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

图形如下,

enter image description here

答案 1 :(得分:0)

另外,在你按照 Tom.chen.kang 和 balandongiv 所说的做完之后,如果你使用的是 32 位 DLL 和 64 位 Python,反之亦然,那么你可能会得到这样的错误尝试导入解压缩:-

<块引用>

OSError: [WinError 193] %1 不是有效的 Win32 应用程序

在这种情况下,请执行以下操作:

对于 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 或其他开发环境。

答案 2 :(得分:-1)

在不同的操作系统上需要不同的解决方案: 在Windows上:

  1. 下载libfile http://www.rarlab.com/rar/UnRARDLL.exe,进行安装;

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

  3. 最重要的是添加环境路径,将变量名输入UNRAR_LIB_PATH,注意,一定是!!!如果您的系统是64位,则输入C:\ Program Files(x86)\ UnrarDLL \ x64 \ UnRAR64.dll,如果您的系统是32位,则输入C:\ Program Files(x86)\ UnrarDLL \ UnRAR.dll。

    < / li>
  4. 保存环境路径后,重新运行pycharm。

在Linux上,您需要制作此类文件,这有点困难。

  1. 相同,下载libfile http://www.rarlab.com/rar/unrarsrc-5.4.5.tar.gz,可以选择最新版本。

  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