pip(或 setuptools、distribute 等)可以列出每个已安装软件包使用的许可证吗

作者:编程家 分类: python 时间:2025-07-25

如何使用pip列出已安装软件包的许可证

在Python开发中,我们经常使用pip来安装和管理软件包。但是,有时我们可能需要查看已安装软件包的许可证信息。幸运的是,pip(以及setuptools和distribute)提供了一种简便的方式来列出每个已安装软件包所使用的许可证。

使用pip命令列出许可证信息

要使用pip列出已安装软件包的许可证信息,我们可以使用以下命令:

pip show --licenses

这个命令会列出每个已安装软件包的名称、版本号和许可证信息。许可证信息通常以"License"开头,后面跟着实际的许可证类型。

下面是一个示例输出:

Package    Version  License

---------- ------- -------

numpy 1.21.0 BSD

pandas 1.3.0 MIT

matplotlib 3.4.2 PSF

案例代码

下面是一个使用pip列出已安装软件包许可证信息的案例代码:

import subprocess

def list_package_licenses():

cmd = "pip show --licenses"

result = subprocess.run(cmd, shell=True, capture_output=True, text=True)

output = result.stdout.strip().split('\n')

# 解析输出结果

licenses = []

for line in output[2:]:

package, version, license = line.split()

licenses.append((package, version, license))

return licenses

# 调用函数并打印结果

licenses = list_package_licenses()

for package, version, license in licenses:

print(f"Package: {package}, Version: {version}, License: {license}")

运行以上代码,您将得到类似于前面示例输出的结果。