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


当前回答

要获取所有可用模块,请运行sys.modules 要获取所有已安装的模块(读取:由pip安装),您可以查看pip.get_installed_distribution ()

对于第二个目的,示例代码:

import pip
for package in pip.get_installed_distributions():
    name = package.project_name # SQLAlchemy, Django, Flask-OAuthlib
    key = package.key # sqlalchemy, django, flask-oauthlib
    module_name = package._get_metadata("top_level.txt") # sqlalchemy, django, flask_oauthlib
    location = package.location # virtualenv lib directory etc.
    version = package.version # version number

其他回答

使用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版本

在python编辑器或IPython中运行以下命令:

import pkg_resources
installed_packages = {d.project_name: d.version for d in pkg_resources.working_set}
print(installed_packages)

阅读其他答案并将这个组合组合在一起,这是Python中最快和最简单的方法。

找到特定的包

你可以很方便地从词典中获取条目。

安装packages[‘pandas’]>> 1.16.4'

善用Pip List

pip列表将在你的jupyter笔记本中运行,简化了“快速检查” 与其他实用程序(如grep)结合使用(如果已安装) 例如,PIP列表| grep pandas将为您提供当前的pandas版本

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

唉,实际上你不太关心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。

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

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

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

我只是用它来查看当前使用的模块:

import sys as s
s.modules.keys()

显示在python上运行的所有模块。

对于所有内置模块使用:

s.modules

它是一个包含所有模块和导入对象的字典。