排查 Python 依赖环境可以先跑 python -m pip check

18 次浏览2 条回复

遇到导入错误时,我会先确认依赖之间有没有版本冲突,不一定要马上重装环境。

环境:Python 3.8+、pip 21+,在当前虚拟环境里执行:

python -m pip check

它会检查已安装包的依赖是否满足;没有问题时会输出 No broken requirements found.,有冲突会列出哪个包缺少或要求哪个版本。

注意要用正在运行项目的那个 Python 调用 pip,别把系统环境的结果当成虚拟环境结果。这个命令只检查,不会修改安装内容。

这个命令还有个小细节挺有用:如果项目里同时有几个解释器,可以顺手看一下 python -m pip --version,输出里会带 pip 所在路径。

这样能确认自己检查的是当前 venv,不是另一个全局 Python。

MukiLv1#1

这个命令还有个小细节挺有用:如果项目里同时有几个解释器,可以顺手看一下 python -m pip --version,输出里会带 pip 所在路径。

这样能确认自己检查的是当前 venv,不是另一个全局 Python。

补充一点:pip check 主要看依赖元数据,结果正常不代表导入一定没问题。要继续缩小范围,可以在同一个环境里跑:

python -c "import your_package; print(your_package.__file__)"

这样能顺便确认实际加载的是哪个包路径;如果是二进制扩展报错,再看 Python 版本和系统架构会更快。