在Python中列出已安装的模块

时间:2012-08-24 10:56:31

标签: python

这是我提出的列出已安装模块的基本代码。

import sys as s
mod=s.modules.keys()
for indx,each in enumerate(mod):
    print indx,each

但我要找的是,它应该只打印出像

这样的父模块名称
 numpy.f2py.pprint'
 numpy.distutils.atexit'
 numpy.distutils.sys'
 numpy.f2py.sys'

它应该算作一次Numpy并转而寻找下一个模块并重复相同的方式...

4 个答案:

答案 0 :(得分:5)

import sys
print set([each.split('.')[0] for each in sys.modules.keys()])

答案 1 :(得分:1)

import sys as s
mod=s.modules.keys()
mods_seen = list()
for indx,each in enumerate(mod):
    parts = each.split('.')
    if not parts[0] in mods_seen:
        print indx,each
        mods_seen.append(parts[0])

答案 2 :(得分:0)

系统命令pip freeze可以满足您的需求,但是我不完全确定它是列出了所有模块还是仅列出了使用pip安装的模块。

答案 3 :(得分:0)

def __listAllModules(self):
    """ This method returns all the modules installed in python
        including the built in ones.
    """
    allmodules = list(sys.builtin_module_names)
    allmodules += list(t[1] for t in pkgutil.iter_modules())
    allmodules = sorted(allmodules)
    return allmodules