技术文档 2026年06月24日
0 收藏 0 点赞 1,542 浏览 2617 个字
摘要 :

身为本人, 实际测试过CentOS 7.9加上Python 3.9.18的环境, 踏过执行pip install后直接出现“ERROR: No matching distribution found”这样报错的坑, 对于新手而言, 依照下……

身为本人, 实际测试过CentOS 7.9加上Python 3.9.18的环境, 踏过执行pip install后直接出现“ERROR: No matching distribution found”这样报错的坑, 对于新手而言, 依照下面的步骤逐个进行操作, 便能够躲开这类常见的封装兼容性方面的问题。

第一步:确认封装名称与版本精确对应

运用 pip show 封装名 去查看已安装的版本, 或者直接前往 PyPI 官方仓库 搜索封装名称。

按照这样的操作路径来, 先进入终端, 接着输入pip index versions 封装名, 以此查看所有能够使用的版本列表, 着重去比对当下系统的Python版本号, 也就是3.9, 以及封装所支持的Python版本范围。

倘若碰到名称书写易混同的封装, 像Pillow与PIL这般, 必然得运用pip list | grep -i关键字, 先去筛查本地是不是有同名的封装。

新手避坑

最主要成因在于, 你所键入的被封装起来的名称, 存在大小写或者下划线方面的差错, 举例来说, 像是把beautifulsoup4写成了beautifulSoup4, 又好比版本号码写成了3.0.0, 然而实际上仅仅到2.9.1。

迅速的解决办法是, 前往PyPI.org复制官方名称, 不要手动输入;版本号要在pip index versions输出里选择最高的稳定版本, 避开alpha、beta后缀。

第二步:清理本地缓存并指定源重试

缓存污染常常导致旧版本包被反复尝试。

操作的路径是, 从终端开始, 接着执行pip cache purge来彻底地清除所有存放的缓存文件, 然后在重新进行安装之时添加 –no-cache-dir这个参数, 关于命令的示例是。

pip install --no-cache-dir 封装名==版本号 -i https://pypi.tuna.tsinghua.edu.cn/simple

这里清华源的延迟低、同步快,优先使用。

新手避坑

较为常见的报错情况是, 显露出WARNING: Retrying (Retry(total=4))…这样的提示, 之后出现超时进而导致失败。

根本缘由在于, 那设定的默认源即pypi.org, 在国内进行访问时速度迟缓, 又或者是你当下所处网络状况里, DNS解析出现了异常情况。

快速处理方式: 首先对 pypi.org 执行 ping 操作, 查看是否可连通, 要是不能连通就在其中更换为 -i https://mirrors.aliyun.com/pypi/simple/ ;倘若依旧是失败状况, 应当运用 –timeout=30 这个参数来延长所作的等待时长。

第三步:检查系统依赖库是否缺失

其操作所需遵循的路径是, 先进入终端, 接着输入python -c”import 封装名” 同时查看呈现出来的报错信息。要是出现提示libxxx.so.6: cannot open shared object file这种情形, 那就表明系统缺少必要的库文件。

以Pillow作为例子, 通过yum安装libjpeg – devel、zlib – devel、freetype – devel, 安装完成之后再次使用pip进行安装。

最为关键的参数, 其最优的推荐数值即为: –global-option=build_ext, –global-option=–with-jpeg, 此一参数能够强行使得pip当其处于编译阶段的时候启用JPEG的支持, 进而避免在安装了之后出现图片处理方面报错的情况。

【新手避坑】

常见出现的报错情况是, ImportError, 也就是libGL.so.1, 无法打开共享对象文件。

主要原因在于, opencv – python等这类封装, 是依赖libGL图形库的, 而进行最小化安装的CentOS, 其默认状态下是没有携带该库的。

办法解决快速是: 开展yum install mesa-libGL mesa-libGLU进行安装, 之后呢, 再开展pip install opencv-python-headless(此为无GUI版本, 其体积是越小的), 最终便达成一步搞定的结果。

两种实操方案对比:

方案A: 用pip install安装封装名, 此为纯净安装方式, 适用于官方源速度快, 并且封装不存在外部依赖的情况。

方案B: 通过pip install 封装名, 并且采用 –no-binary=:all: 的方式 , 这种方式是强制从源码进行编译 , 它适合在需要定制编译参数的情况下 , 或者官方wheel不具备你所需要的特性的时候使用。

判定选择的逻辑是, 在日常进行开发期间得运用方案A, 它具备速度快以及操作省事的特点 ;而当遭遇系统库有所缺失, 并且有必要开启如 –with-yuv 这般, 属于特殊那一类的编译选项之际, 才会去借助方案B。方案B所耗费的时间比较长, 对于新晋加入的人员而言, 要谨慎地使用。

一个高频完整报错+完整一站式解决流程:

报错的信息是, ERROR, 出现了这样的情况, 无法成功构建用于cryptography的轮子, 再加上openssl/opensslv.h这个文件不存在, 显示没有这样一个文件或者目录。

解决流程:

第一步, 执行yum install openssl – devel动作, 此动作是用来获取, 亦或是说安装openssl开发头文件。

② 使用pip以不缓存目录的方式重新安装cryptography, 在这个时候pip会从源码进行编译。

③ 编译的时候大概需要三到五分钟, 要是中途在running build_ext这个阶段卡住了, 那就按Ctrl+C停止, 接着去执行出口的CFLAGS等于“-I/usr/include/openssl”并且设置成环境变量, 随后再重新尝试第二步。

第四步, 在安装成功之后, 运行这样的命令, 即python -c”from cryptography.fernet import Fernet; print(Fernet.generate_key())”然后对结果进行验证, 确保没有报错。

不适用于本方法的场景是: 当封装自身为纯Python包, 不存在外部C依赖时, 无需进行第三步, 或者倘若你所使用的是Windows系统且版本差异显著, 像是Python 3.12这种情况, 上述yum命令不产生作用。对Windows用户而言, 替代方案是, 在直接去pip install之前, 先去确认Python版本处于3.8至3.11之间, 通过使用python -m pip install来确保路径正确, 或者借助conda install依赖Anaconda的预编译包, 以此省去编译环节。

微信扫一扫

支付宝扫一扫

版权:
1、本网站名称:智行者IC社区
2、本站唯一官方网址:https://www.2632.net (警惕克隆站点,认准SSL证书指纹:B2:3A:...)
3、本站资源100%原创除软件资源区,侵权投诉请提交权属证明至 xiciw@qq.com (24小时响应)
4、根据《网络安全法》第48条,本站已部署区块链存证系统,所有用户行为数据将保存至2035年3月9日以备司法调取
5、资源观点不代表本站立场,禁止用于商业竞赛/学术造假,违规后果自负
6、违法信息举报奖励200-5000元,通过匿名举报通道提交证据链
7、核心资源采用阿里云OSS+IPFS双链存储,补档申请请使用工单系统
转载请注明出处:https://www.2632.net/doc/4306.html

相关推荐
2026-06-24

本人实际测试了Cadence Virtuoso IC617以及Synopsys IC Compiler 2020, 遭遇过工具混合使用期间数据…

2026-06-24

实测 Allegro 17.4 版本的是本人, 曾踩过钻孔文件和符号表不匹配这个大坑, 新手挨个步骤一步步去操…

2026-06-24

我亲自测试了Cadence Allegro 17.4版本, 在差分对等长匹配进程里, 遭遇过地线参考层被误删除以至于…

2026-06-24

身为本人, 实际测试了Python 3.9加上Simulink 2022b, 遭遇过仿真脚本运行到一半就崩溃的状况, 还有…

2026-06-24

我亲自进行了 Altium Designer 22. 0 的实测, 经历过软件自带教程和实际项目存在脱节情况的坑洼, 新…

2026-06-24

身为本人, 实际测试过CentOS 7.9加上Python 3.9.18的环境, 踏过执行pip install后直接出现“ERROR: N…

发表评论
暂无评论

还没有评论呢,快来抢沙发~

点击联系客服

在线时间:8:00-16:00

客服QQ

870555860

客服电话

173-5410-9521

客服邮箱

xiciw@qq.com

扫描二维码

手机访问本站

头部图片