如何获取本地已安装的Python模块列表?
在Python中,我们可以通过pip包管理器来安装、更新或卸载模块。然而,在实际使用中,有时需要查看本地已安装的Python模块列表,以确定是否已安装所需模块或了解当前环境中所支持的模块及其版本等信息。
更多Python教程,请阅读:Python 教程
方法一:使用pip list命令
在命令行中输入以下命令,即可列出本地已安装的Python模块列表:
pip list
该命令将输出一个表格,其中包含已安装的模块名、版本号以及其它相关信息。
需要注意的是,该命令列出的模块列表是按照名称的字母顺序排列的。
方法二:使用pkg_resources库
除了使用pip list命令外,我们还可以使用Python内置的pkg_resources
库来获取已安装的模块列表及其相关信息。下面是一个简单的示例代码:
import pkg_resources
modules = [dist.project_name for dist in pkg_resources.working_set]
for m in modules:
print(m)
在上述示例代码中,我们首先通过导入pkg_resources
模块,然后调用该模块中的working_set
方法,获取当前Python环境中所有已安装的模块。随后,我们通过一个简单的循环遍历输出所有已安装模块的名称。运行结果如下:
setuptools
pip
wheel
需要注意的是,在使用pkg_resources
库时,还可以获取更详细的模块信息,如版本号、作者信息等等。具体可参考Python官方文档或相关教程。
方法三:使用os库和site-packages目录
除了使用以上两种方法外,我们还可以通过os库中的方法,来获取Python安装路径下的site-packages
目录,并从该目录中读取已安装的模块列表。以下是一个简单的示例代码:
import os
site_packages = os.listdir('/usr/local/lib/python3.9/site-packages')
modules = [m.split('.py')[0] for m in site_packages if m.endswith('.py')]
for m in modules:
print(m)
在上述示例代码中,我们首先使用os
模块中的listdir
方法读取site-packages
目录下的所有文件或文件夹列表。随后,我们通过一个简单的循环和endswith
方法,筛选出以.py
结尾的文件,并将其名称中的.py
后缀去除,得到模块名称列表。运行结果如下:
setuptools
pip
wheel
结论
综上所述,我们可以使用pip list
命令、pkg_resources
库或os
库和site-packages
目录,来获取本地已安装的Python模块列表。其中,使用pip list
命令最为简单并且易于使用,但不允许程序化的操作。而使用pkg_resources
库,虽然设置稍微麻烦一些,但具有灵活的定制能力。最后,使用os
库和site-packages
目录相对来说略显麻烦,但具有高度的自由度。在实际应用中,可根据具体需求选择适宜的方式,来获取本地已安装的Python模块列表。