如何获得在计算机上安装的Python模块列表?


当前回答

我通常使用pip list来获取包的列表(带有版本)。

当然,这也适用于虚拟环境。要显示只在虚拟环境中安装了什么(而不是全局包),请使用pip list——local。

下面的文档显示了所有可用的pip列表选项,并提供了几个很好的示例。

其他回答

help('modules')

在Python shell/提示符中。

从外壳开始

ls site-packages

如果没有帮助,你可以这样做。

import sys
import os
for p in sys.path:
    print os.listdir( p )

看看会产生什么。

有很多想法,我首先思考的是这两个:

pip

缺点:不总是安装

帮助(“模块”)

缺点:输出到控制台;使用损坏的模块(参见ubuntu…)可以段错误

我需要一个简单的方法,使用基本库,并与旧的python 2.x兼容

我明白了:listmodules.py

在2.5版本的文档源目录中隐藏了一个小脚本,它列出了Python安装的所有可用模块。

优点:

只使用imp、sys、os、re、time 设计用于运行Python 1.5.2及更新版本 源代码非常紧凑,所以你可以很容易地修补它,例如传递一个有bug的模块的异常列表(不要试图导入它们)

安装

pip install pkgutil

Code

import pkgutil

for i in pkgutil.iter_modules(None): # returns a tuple (path, package_name, ispkg_flag)
    print(i[1]) #or you can append it to a list

样例输出:

multiprocessing
netrc
nntplib
ntpath
nturl2path
numbers
opcode
pickle
pickletools
pipes
pkgutil

使用pkgutil.iter_modules进行非常简单的搜索

from pkgutil import iter_modules
a=iter_modules()
while True:
    try: x=a.next()
    except: break
    if 'searchstr' in x[1]: print x[1]