如何在 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 上:
下载库文件,http://www.rarlab.com/rar/UnRARDLL.exe,安装它;
你最好选择os默认路径,C:\Program Files (x86)\UnrarDLL\
most 重要的是添加环境路径,varname输入UNRAR_LIB_PATH,注意,一定是!!!。然后如果你的系统是 64 位输入 C:\Program Files (x86)\UnrarDLL\x64\UnRAR64.dll,如果你的系统是 32 位输入 C:\Program Files (x86)\UnrarDLL\UnRAR.dll.
保存环境路径后,重新运行你的pycharm。
在Linux你需要制作so文件,有点难
同理,下载lib文件http://www.rarlab.com/rar/unrarsrc-5.4.5.tar.gz,可以选择os最新版本
下载后解压文件解压,cd unrar
,然后make lib
,然后make install-lib
,我们将得到文件libunrar.so
(在 /usr/lib)。
最后,还需要设置环境路径,vim /etc/profile
打开文件profile
,在文件末尾添加export UNRAR_LIB_PATH=/usr/lib/libunrar.so
。然后保存文件,使用source /etc/profile
使环境成功
重新运行 .py 文件。
资源网址:https://blog.csdn.net/ysy950803/article/details/52939708
除了@tom 对 Windows 10
环境的回答外,以下步骤应该有所帮助:
- 通过link下载lib文件并安装。
- 为了方便复制以下步骤,选择默认路径,C:\Program Files (x86)\UnrarDLL\
- 转到环境变量 window (link) 和 selected 高级。
- 单击环境设置。
- 在用户变量下,select新建。
- 在新用户变量中,将变量名称重命名为UNRAR_LIB_PATH
- 到select变量值,select浏览文件。根据您的系统,64 位输入 C:\Program Files (x86)\UnrarDLL\x64\UnRAR64.dll,如果您的系统是 32 位,则输入 C:\Program Files (x86)\UnrarDLL\UnRAR.dll.
- 保存环境路径并重新运行 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 或其他开发环境。
我正在使用 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 上:
下载库文件,http://www.rarlab.com/rar/UnRARDLL.exe,安装它;
你最好选择os默认路径,C:\Program Files (x86)\UnrarDLL\
most 重要的是添加环境路径,varname输入UNRAR_LIB_PATH,注意,一定是!!!。然后如果你的系统是 64 位输入 C:\Program Files (x86)\UnrarDLL\x64\UnRAR64.dll,如果你的系统是 32 位输入 C:\Program Files (x86)\UnrarDLL\UnRAR.dll.
保存环境路径后,重新运行你的pycharm。
在Linux你需要制作so文件,有点难
同理,下载lib文件http://www.rarlab.com/rar/unrarsrc-5.4.5.tar.gz,可以选择os最新版本
下载后解压文件解压,
cd unrar
,然后make lib
,然后make install-lib
,我们将得到文件libunrar.so
(在 /usr/lib)。最后,还需要设置环境路径,
vim /etc/profile
打开文件profile
,在文件末尾添加export UNRAR_LIB_PATH=/usr/lib/libunrar.so
。然后保存文件,使用source /etc/profile
使环境成功重新运行 .py 文件。
资源网址:https://blog.csdn.net/ysy950803/article/details/52939708
除了@tom 对 Windows 10
环境的回答外,以下步骤应该有所帮助:
- 通过link下载lib文件并安装。
- 为了方便复制以下步骤,选择默认路径,C:\Program Files (x86)\UnrarDLL\
- 转到环境变量 window (link) 和 selected 高级。
- 单击环境设置。
- 在用户变量下,select新建。
- 在新用户变量中,将变量名称重命名为UNRAR_LIB_PATH
- 到select变量值,select浏览文件。根据您的系统,64 位输入 C:\Program Files (x86)\UnrarDLL\x64\UnRAR64.dll,如果您的系统是 32 位,则输入 C:\Program Files (x86)\UnrarDLL\UnRAR.dll.
- 保存环境路径并重新运行 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 或其他开发环境。