如何确定Python导入模块对应的RPM包或Wheel包?
定位Python模块对应的RPM/Wheel包方法
一、定位系统自带模块(对应RPM包)
像yum、rpm这类模块基本是操作系统通过RPM包预装的,并非pip安装,可按以下步骤精准定位:
获取模块的实际文件路径
在终端执行Python命令,打印模块的文件位置:# 查询yum模块路径 python -c "import yum; print(yum.__file__)" # 查询rpm模块路径 python -c "import rpm; print(rpm.__file__)"输出示例:
/usr/lib/python2.7/site-packages/yum/__init__.pyc(查询时可去掉.pyc后缀,用.py路径更稳妥)通过文件路径关联到具体RPM包
用rpm -qf命令查询该文件所属的RPM包:rpm -qf /usr/lib/python2.7/site-packages/yum/__init__.py输出示例:
yum-3.4.3-168.el7.centos.noarch,这就是对应import yum的RPM包。
同理,rpm模块对应的RPM包通常是rpm-python系列,比如rpm-python-4.11.3-48.el7_9.x86_64。
二、定位pip安装的模块(对应Wheel包)
如果模块确实是通过pip安装的,直接用以下命令查看包详情:
pip show yum # 针对特定Python版本可指定 python3 -m pip show yum
命令会输出包名、版本、安装路径等信息,通过这些就能确认是否为对应import yum的Wheel包。
补充说明
rpm -qa | grep yum会返回大量结果,是因为它列出了所有名称含yum的RPM包(包括各类依赖包),而rpm -qf通过文件直接关联,能精准定位到提供Python模块的核心包。- 注意
yum模块仅支持Python2环境,CentOS 8及后续版本改用dnf,对应Python模块为dnf,定位方法完全一致。
内容的提问来源于stack exchange,提问作者Judy
相关产品推荐
相关产品推荐

