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


当前回答

在正常情况下使用即可

pydoc modules

其他回答

现在,我自己尝试了这些方法,我得到了广告中所说的:所有的模块。

唉,实际上你不太关心stdlib,你知道安装python会得到什么。

真的,我想要我安装的东西。

令人惊讶的是,实际上效果还不错的是:

pip freeze

返回:

Fabric==0.9.3
apache-libcloud==0.4.0
bzr==2.3b4
distribute==0.6.14
docutils==0.7
greenlet==0.3.1
ipython==0.10.1
iterpipes==0.4
libxml2-python==2.6.21

我说“令人惊讶”是因为包安装工具是人们期望找到这个功能的确切位置,尽管不是在“冻结”的名称下,但python打包是如此奇怪,以至于我惊讶于这个工具是有意义的。Pip 0.8.2, Python 2.7。

使用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]

如果以上这些似乎都没有帮助,那么在我的环境中,系统升级被打破了,我无法升级pip。虽然它不会给你一个准确的列表,但你可以通过查看你的env>lib>python(版本在这里)>site-packages>来了解安装了哪些库。在这里,您可以很好地了解已安装的模块。

除了使用pip freeze,我还在虚拟环境中安装了蛋黄。

下面是一个python代码解决方案,它将返回已安装模块的列表。可以很容易地修改代码以包含版本号。

import subprocess
import sys
from pprint import pprint

installed_packages = reqs = subprocess.check_output([sys.executable, '-m', 'pip', 'freeze']).decode('utf-8')
installed_packages = installed_packages.split('\r\n')
installed_packages = [pkg.split('==')[0] for pkg in installed_packages if pkg != '']
pprint(installed_packages)