0

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

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

4 回答 4

5
import sys
print set([each.split('.')[0] for each in sys.modules.keys()])
于 2012-08-24T11:02:38.517 回答
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])
于 2012-08-24T10:59:51.213 回答
0

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

于 2012-08-24T10:59:16.103 回答
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
于 2013-12-08T07:27:21.357 回答