Centos | 一招解决所有 ImportError: xxx: cannot open shared object file

文章目录

  • 原创声明
  • 前言
  • 一、whatprovides 是什么?
  • 二、实际操作
  • 总结
  • 授权须知

原创声明

本文为 HinGwenWoong 原创,如果这篇文章对您有帮助,欢迎转载,转载请阅读文末的【授权须知】,感谢您对 HinGwenWoong 文章的认可!


前言

我们平时开发,经常会出现一些系统环境依赖找不到的问题(如下图所示):
在这里插入图片描述
遇到的时候,通常的做法是去百度将错误搜索下,但是有一些时候会遇到没有对应的答案,这就很头痛,找了很久都没办法解决,光搞环境就可以搞个好几天。

直到有一天,我发现了这个命令 yum whatprovides xxx,瞬间解决了我所有的问题,我以后都不需要惧怕系统依赖找不到的问题了,下面,我就来演示下其使用。

我是 HinGwenWoong,一个有着清晰目标不停奋斗的程序猿,热爱技术,喜欢分享,码字不易,如果帮到您,请帮我在屏幕下方点赞 ,您的点赞可以让技术传播得更远更广,谢谢!


一、whatprovides 是什么?

使用 man yum whatprovides 可以查看到详细解释:

Is used to find out which package provides some feature or file. Just use a specific name or a file-glob-syntax wildcards to list the packages available or installed that provide that feature or file.

翻译一下

用于确定哪个软件包提供某些功能或文件。只需使用特定名称或文件glob语法通配符来列出提供该功能或文件的可用或安装的软件包。


二、实际操作

命令如下:

$ yum whatprovides <缺失依赖的名称>

下面以 OpenCV 需要的依赖 libXrender.so.1 为例进行讲解:

  • 使用 pip install 安装的时候发现环境依赖 libXrender.so.1 缺失:
    在这里插入图片描述
  • 使用命令查看那个软件包提供的
    yum whatprovides libXrender.so.1
    
  • 可以看到是 libXrender-0.9.10.1.el7.i686 软件包提供的详细资料:
    Centos | 一招解决所有 ImportError: xxx: cannot open shared object file_第1张图片
  • 根据信息,使用 yum 进行依赖库的安装,注意:如果是 Centos 的话,去掉 .i686 再进行安装,如果系统时 x64 位系统需要把 .i686改成 .x86_64
    Centos | 一招解决所有 ImportError: xxx: cannot open shared object file_第2张图片
  • 重新执行 OpenCV 安装即可完成安装

总结

以上就是使用 yum whatprovides 一招解决所有 ImportError: xxx: cannot open shared object file 的问题,希望能够帮助您快速搭建环境。

我是 HinGwenWoong,一个有着清晰目标不停奋斗的程序猿,热爱技术,喜欢分享,码字不易,如果帮到您,请帮我在屏幕下方点赞 ,您的点赞可以让技术传播得更远更广,谢谢!


更多阅读推荐
  • CentOS7 升级 Git (最新方法,秒杀一切旧方法!)
  • YAPI 部署从零到一,我都帮你梳理好了

授权须知

  1. 原创文章在推送一天后才可进行转载
  2. 转载文章,禁止声明原创
  3. 不允许直接二次转载,转载请根据原文链接联系作者
  4. 若无需改版,在文首清楚标注作者及来源/原文链接,并删除【原创声明】,即可直接转载。
    但对于未注明转载来源/原文链接的文章,我将保留追述的权利。

    作者:HinGwenWoong
    一个有着清晰目标不停奋斗的程序猿,热爱技术,喜欢分享,共同进步!
    CSDN: HinGwenWoong
    原文链接:Centos | 一招解决所有 ImportError: xxx: cannot open shared object file

  5. 若需要修改文章的排版,请根据原文链接联系作者
  6. 再次感谢您的认可,转载请遵守如上转载须知!

你可能感兴趣的:(CentOS,centos,linux,运维,python,virtualenv)