技术文档 2026年04月12日
0 收藏 0 点赞 794 浏览 1497 个字
摘要 :

本测试是在Python 3.9.7加上pip 21.3.1的环境下进行的,遇到过setuptools在打包时因依赖版本不兼容致使线上服务出现ImportError的情况,对于新手而言,只要依照步骤一步……

本测试是在Python 3.9.7加上pip 21.3.1的环境下进行的,遇到过setuptools在打包时因依赖版本不兼容致使线上服务出现ImportError的情况,对于新手而言,只要依照步骤一步步去操作,便可轻松躲开这类常见问题。

第一步 生成精确依赖锁定文件

先在终端安装pip-tools,具体操作为使用pip install pip-tools==6.5.0。接着在项目根目录新建requirements.in,且在其中只写入像requests>=2.25.0这样的核心依赖。执行pip – compile requirements.in,将其输出文件指定为requirements.txt,并且使用,–resolver = backtracking作为参数,这个参数是最优推荐的,它能够深度解析依赖树,进而避免循环冲突。

关于【新手避坑】,存在常见报错,即“No matching distribution found for xxx”,其核心原因在于,直接通过pip freeze > requirements.txt 把子依赖版本钉死,如此一来,换环境就会出现崩溃情况。解决办法是,使用pip-compile重新生成,并且每次在打包之前,都必须运行一遍。

第二步 配置版本区间范围

不要用==锁死,否则其他库一升级就炸。

【新手需防入坑】,出现报错“ERROR: Could not find a version that satisfies”,一般状况下是区间设定得过窄。能够迅速解决的办法是:去执行pip install –dry-run 包名,以此查看可用版本,接着将下界降低至上一个稳定的小版本,举例来说,就是从>=2.26.0改回到>=2.25.0。

第三步 执行校验命令并解决报错

执行pip check ,要是输出No broken requirements found 那就通过 ,不然的话高频报错呈现这样: “xxx has requirement yyy , 但你有的是zzz”。关于一站式解决流程,其一,要对当前环境进行备份。怎样备份?就是执行pip freeze > backup.txt这个操作。其二,要将pip升级到最新版本。具体怎么做?那就是运行pip install –upgrade pip此指令。其三,临时使用旧解析器。如何使用?即得采取pip install –use-deprecated=legacy-resolver -r requirements.txt这一行为。其四,要放宽冲突包的版本上界,之后再重新编译。

【新手需避坑】,不要直接去删除冲突包。正确的做法是,首先要新建虚拟环境,接着逐个安装核心依赖并运行pip check,以此来定位究竟具体是哪一个传递依赖出现问题。随后手动在requirements.in里锁定那个包的兼容版本。

将两种方案予以对比:方案A采用pip-tools(依循上面三步),适用于依赖数量小于或等于20个的小型项目,具备轻量且无侵入的特性。方案B运用Poetry,能够自动解决兼容性问题,不过需要迁移pyproject.toml,适用于多人协作的大型工程。对于小型项目而言选择A,若要引入CI/CD则选择B。

该方法不适用于C扩展模块的ABI兼容性校验,像numpy编译版本这种情况,或者.so文件链接冲突这种状况。替代方案是,直接借助Docker镜像固化整个系统环境,又或者换conda管理二进制包。别指望纯Python依赖工具能够搞定底层符号表问题。

你于封装项目之际,所察觉到的最为令人作呕的兼容性报错究竟是什么呢?于评论区抛出来呀,我试试看有无更为厉害的操作。若觉得颇具效用便点个赞,转发予仍在遭受依赖所折磨的队友。

微信扫一扫

支付宝扫一扫

版权:
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/3608.html

相关推荐
2026-04-12

本人实际测试了Keil MDK 5.38,经历过ST-Link驱动自动安装失败致使设备管理器里始终呈现黄色感叹号…

2026-04-12

亲测,将Altium Designer从24.0.1升级到24.6.1,曾遭遇原理图编译报错,库路径全丢失的状况,新手只…

2026-04-12

我亲自对Altium Designer 24.01进行过实测,掉落下因敷铜不完整致使地平面出现断裂之情状,以及遭遇…

2026-04-12

我亲身进行了关于华大九天Empyrean Aether 2023.2版本的测试,遭遇过因为库路径配置出现错误进而致…

2026-04-12

亲身测试了Altium Designer 24,遭遇过丝印糊成一团的情况,经历过字符压焊盘的状况,还碰到板厂返…

2026-04-12

本人实际测试 Altium Designer 22,踩过因封装相互重叠致使 DRC 报错却寻觅不到根源所在的坑,新手…

发表评论
暂无评论

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

点击联系客服

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

客服QQ

870555860

客服电话

173-5410-9521

客服邮箱

xiciw@qq.com

扫描二维码

手机访问本站

头部图片
弹窗背景

PCB+嵌入式硬件5月实训预约报名

为助力学员快速掌握 PCB + 嵌入式硬件核心技能,精准匹配电子行业热门岗位需求,直通高薪就业赛道、打通职场晋升通道,2026 年 5 月 PCB + 嵌入式硬件实训课现已正式开启预约报名!老学员推荐报名可享专属惊喜福利,诚邀各位踊跃参与!

立即报名 我知道了