首页 新闻 会员 周边

为什么只有两个第三方库

0
[已关闭问题] 关闭于 2026-07-13 15:44

为什么只有两个第三方库,,,,,,,,,,,,,

*Tesla*的主页 *Tesla* | 老鸟四级 | 园豆:2040
提问于:2026-07-13 15:43
< >
分享
所有回答(1)
0

从你提供的截图来看,这其实是一个典型的“视觉误差”或者是命令执行路径的问题。

虽然 pip list 只列出了两个包,但你的文件列表(ls)里明明躺着几十个库。造成这种现象的原因主要有以下几点:

1. pip 版本与 Python 环境不匹配(最可能的原因)
请注意看截图中的细节:
- 文件名:你的目录下有很多以 .egg-info 结尾的文件夹,且名字里都带着 py3.7(例如 requests-2.21.0-py3.7.egg-info)。这说明这些库是为 Python 3.7 安装的。
- pip 版本:当你输入 pip list 时,显示的版本是 18.0。在 CentOS/RHEL 7 这种老系统上,系统自带的 pip 命令往往指向的是 Python 2.7 的 pip,或者是一个未正确关联到当前 Python 3.7 环境的旧 pip。

结论:你运行的 pip list 很可能是在查 Python 2.7 的库(那里确实可能只有 pip 和 setuptools),而不是在查你眼前这个 Python 3.7 目录下的库。

2. 安装方式不同(Egg vs Wheel)
- 现象:截图中大量的库是以 .egg-info 目录形式存在的(如 blivet, configobj 等)。这是比较老旧的 Python 打包格式,或者是通过 setup.py install 或系统包管理器(yum/rpm)直接安装的。
- 影响:较新版本的 pip 对这种非标准安装(Non-standard installation)的识别能力有时会有问题,或者因为它根本不是通过 pip install 安装的,所以 pip 并不完全“认账”,导致统计不全。

3. 如何看到真实的库列表?
既然 pip list “撒谎”了,你可以尝试以下几种方法来查看真正的第三方库:

方法一:指定 Python 3 运行 pip
尝试用 python3 来调用 pip,确保查的是同一个环境:
python3 -m pip list或者pip3.7 list

(如果系统里 python3 指向的就是 3.7,这招通常管用)

方法二:直接在 Python 中查看
进入 Python 交互环境,让 Python 自己告诉你它加载了哪些模块:
python3
>>> help('modules')

这会列出所有已安装的模块,虽然比较乱,但是最全的。

方法三:简单粗暴地数文件夹
既然你在 site-packages 目录下,直接数那些 .egg-info 和 .dist-info 文件夹即可,它们每一个都代表一个已安装的库。
你可以用这个命令统计一下大概数量:
ls -d *.egg-info *.dist-info | wc -l

总结: 你的库里其实装了很多东西(如 requests, pytz, dbus 等),只是你刚才用的 pip 命令“找错门”了,去查了另一个 Python 版本的账本。

另外我注意到你用的是 root 权限,这在生产环境里其实挺危险的,需要我帮你梳理下 Linux 下管理 Python 环境的最佳实践吗?

*Tesla* | 园豆:2040 (老鸟四级) | 2026-07-13 15:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册