在写Python脚本的时候,由于做rar文件解压要用到unrar库,我们都会加上一句:

from unrar import rarfile

如果你是在Windows下使用PyCharm这种IDE,那么很方便,它会提示导入包,你也可以在项目设置中手动搜索第三方库并安装;

如果是Linux命令环境的话,推荐使用 pip install rarfile 和 pip install unrar 命令来安装这些库。

然而,你会发现,做了上述操作后,并不能通过Python程序实现解压的功能,并且会提示 Couldn't find path to unrar library...的错误,导致程序中断。

当时我百思不得其解,我明明安装了库为什么还找不到呢?

几经查阅,从python-unrar开源项目官网得知了Python下的unrar还依赖RAR官方的库

那么,接下来就分Windows和Linux两个系统来介绍解决步骤。

Win:

1. 先到RARLab官方下载库文件,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 ,这个从unrar安装目录的内容也能看出来它是区分64和32位的。

4. 确定保存环境变量后,重启你的PyCharm,代码不变,再运行就不会出错了。这个时候依赖库已经添加到系统环境中。

Linux需要自己手动编译生成so文件,稍微麻烦一点:

1. 同样的,先去下载源文件,不过这就不像Win那样给你封装好了,你需要下载的是源代码:http://www.rarlab.com/rar/unrarsrc-5.4.5.tar.gz ,也就是RARLab官网下载列表中的 UnRAR Source,可以下载到最新版本;

2. 下载完后解压,得到unrar目录,cd unrar 后,使用 make lib 命令将会自动编译库文件,哗啦啦编译完成后,再使用 make install-lib 命令产生 libunrar.so 文件(一般在 /usr/lib 目录下面);

3. 最后,你仍然需要设置Linux系统的环境变量,找到 /etc 目录下的 profile 文件,当然你可以直接使用 vim /etc/profile 命令来编辑(有WinSCP这种远程访问目录的工具更方便),在 profile 文件末尾加上 export UNRAR_LIB_PATH=/usr/lib/libunrar.so ,别把我这句话的逗号加进去了。成功保存后再使用 source /etc/profile 命令使变量生效。

4. 这样一来,再运行py文件,就不会出错了,至少不会提示找不到unrar库了。

友情提示:如果有同学 make 命令用不了的,请自行安装g++编译器,命令:sudo apt-get install g++

结语,其实正常的安装顺序应该就是先把依赖库安装好,环境变量配置好,最后再去 pip install unrar 或者在IDE中导入unrar库的,不过大家是出现了错误提示才来补救,最终效果也一样。

参考资料:

https://github.com/matiasb/python-unrar/blob/master/README.md

http://stackoverflow.com/questions/31834502/couldnt-find-path-to-unrar-library-in-linux

http://blog.csdn.net/big_talent/article/details/52367184

解决Python下安装unrar后仍然提示Couldn't find path to unrar library...相关推荐

  1. linux安装gnome桌面6,解决CentOS下安装Gnome桌面错误提示之一的方法

    昨天刚好在百度知道里面看到了有人说"解决Linux下root能正常进入系统,普通用户一直黑屏状态的方法"(经过测试,这个问题已经解决.而且普通用户加入root用户组后也是可以关机的 ...

  2. 解决win10下安装typescript后仍报“tsc不是内部或外部命令...”的问题

    近日安装了node.js,再使用npm intsll -g typescript来安装了typescript后,发现在命令行输入tsc -v查看typescript版本的时候死活都报错"ts ...

  3. 解决windows下安装cnpm后,cnmp不是内部命令的问题

    1.安装cnpm npm install -g cnpm -registry=https://registry.npm.taobao.org 2.验证cnpm 用下面命令检查cnpm安装,发现不可用, ...

  4. 解决docker下安装redis后,RedisDesktopManager可以链接,但是springboot项目不能链接的问题

    主要原因:docker中的redis需要添加密码,不然数据会丢失,添加了密码远程访问的时候可能会出现链接不上,密码报错等问题,是因为docker中的redis版本是随时更新的,可以用 docker i ...

  5. 关于如何解决Python中安装requests后,pycharm报错ModuleNotFoundError: No module named 'requests'(转载+个人实践)

    打开settings 点击+搜索requests 点击install package 成功安装. bs4也同理

  6. 彻底解决python库安装慢的问题

    解决python pip安装慢的问题 提示:有的时候我们用pip安装一些python的常用库的时候,我们会发现,总是10kb/s的速度在下载,很影响我们的python库的使用,下面介绍几种快速下载py ...

  7. python安装完毕后,提示找不到ssl模块的解决步骤

    python安装完毕后,提示找不到ssl模块: [root@localhost ~]# python2.7.5 Python 2.7.5 (default, Jun 3 2013, 11:08:43) ...

  8. 海康摄像机在Edge浏览器的网页无法直接预览,按照要求安装WebComponents后仍然提示请安装插件的解决办法

    海康摄像机在网页无法直接预览,按照要求安装WebComponents后仍然提示请安装插件的解决办法 在win10系统Microsoft Edge浏览器中亲测有效. 第一步:按照要求安装WebCompo ...

  9. win10下安装Ubuntu后,启动时没有win10选项解决方法

    win10下安装Ubuntu后,启动时没有win10选项解决方法 参考文章: (1)win10下安装Ubuntu后,启动时没有win10选项解决方法 (2)https://www.cnblogs.co ...

最新文章

  1. 【bootstrap】bootstrap-4.5.0-example 各个模板展示
  2. 基于深度神经网络的风电场超短期功率预测系统【数据故事计划最佳学术奖】...
  3. 波场DApp数据分析
  4. 【java基础】POJO和JavaBean的区别
  5. 安装完Hadoop之后,命令行输入hadoop或hdfs却找不到命令的解决方法
  6. OpenStack在keystone部分同步数据库报错Errno 13解决办法
  7. git提交过滤target文件 idea_找不到或无法加载主类(IDEA中启动spring boot项目)
  8. 请概述可视化卷积神经网络的中间输出的基本思想。_卷积神经网络为什么能称霸计算机视觉领域?...
  9. [MIPS汇编语言]InsertionSort插入排序
  10. javac编译出现“找不到符号”和软件包不存在的解决
  11. php 迭代器迭代中文时重复,3种方式解决iterator迭代器并发修改异常
  12. linux cookie 地址,SYN Cookie原理及其在Linux内核中的实现
  13. 输入特定字符和只能输入数字。
  14. Spring中使用集成MongoDB Client启动时报错:rc: 48
  15. C++——STL库中各算法以及其主要运用简介
  16. 驱动精灵等软件卸载后剩余文件的删除
  17. 加密所有事物,将数据安全存储在任何地方
  18. 单独的html怎么实现微信分享,html静态页面实现微信分享思路
  19. 【单片机原理及其应用】第五章定时器的介绍和习题分析
  20. python 矩阵求逆

热门文章

  1. 指纹模块开发-FPW(M)指纹系列产品
  2. 04.TFT_RGB接口时序分析
  3. 计算机系统基础实验 - 同符号浮点数加法运算/无符号定点数乘法运算的机器级表示
  4. 姓名加星号显示,只显示第一位和最后一位
  5. MATLAB 如何让图形变美?[第一期]
  6. 关于重装系统后没有以太网和wifi的问题解决
  7. 关于mp4格式转m3u8切片加密的方案调研
  8. Silvaco学习笔记(五)毕设相关
  9. ogg mysql表结构不一致_求助:OGG双向同步,数据不一致如何解决?(已解决)
  10. 10005---热部署