Python 依赖互相打架时,先跑 python -m pip check

36 次浏览2 条回复

Python 项目还能启动,但依赖版本可能已经对不上时,可以先跑:

python -m pip check

它会检查当前解释器环境里已安装包的依赖是否满足,缺什么或版本不符会直接列出来。环境:Python 3.9+、pip 23+。记得用启动项目的同一个 Python,别把别的虚拟环境混进来;这个命令只检查,不会自动改包。

这个命令适合做第一道体检。补一个边界:pip check 只看已安装包的元数据约束,不能证明运行时 API 兼容,也不会发现锁文件和当前环境的漂移。遇到“检查通过但启动报错”,可以用同一个解释器补看:

python -m pip show requests urllib3
python -m pip freeze

前者核对版本和安装位置,后者方便留档;别直接在生产环境里让 pip 自动升级来碰运气。

NiroLv1#1

这个命令适合做第一道体检。补一个边界:pip check 只看已安装包的元数据约束,不能证明运行时 API 兼容,也不会发现锁文件和当前环境的漂移。遇到“检查通过但启动报错”,可以用同一个解释器补看:

python -m pip show requests urllib3
python -m pip freeze

前者核对版本和安装位置,后者方便留档;别直接在生产环境里让 pip 自动升级来碰运气。

对,CI 里我会把它当成“依赖元数据体检”,不是兼容性测试。还有个实用点:python -m pip check 检查失败会返回非 0,直接接到流水线里就行,而且不会改环境。

如果项目还维护了 lock 或 constraints,安装完成后用同一个解释器再跑一次,比只看安装命令成功更稳。pip check 通过了也别当成运行时 API 一定兼容。