Dump the software license list of Python packages installed with pip.
pip-licenses is a CLI tool for checking the software license of installed Python packages with pip.
Implemented with the idea inspired by composer licenses command in Composer (a.k.a PHP package management tool).
https://getcomposer.org/doc/03-cli.md#licenses
Install it via PyPI using pip command.
# Install or Upgrade to newest available version
$ pip install -U pip-licensesExecute the command with your venv (or virtualenv) environment.
# Install packages in your venv environment
(venv) $ pip install Django pip-licenses
# Check the licenses with your venv environment
(venv) $ pip-licenses
Name Version License
Django 2.0.2 BSD
pytz 2017.3 MITBy default, this tool finds the license from package Metadata. However, depending on the type of package, it does not declare a license only in the Classifiers.
(See also): Set license to MIT in setup.py by alisianoi ・ Pull Request #1058 ・ pypa/setuptools, PEP 314#License
For example, even if you check with the pip show command, the license is displayed as UNKNOWN.
(venv) $ pip show setuptools
Name: setuptools
Version: 38.5.0
Summary: Easily download, build, install, upgrade, and uninstall Python packages
Home-page: https://github.com/pypa/setuptools
Author: Python Packaging Authority
Author-email: distutils-sig@python.org
License: UNKNOWNIf you want to refer to the license declared in the Classifiers, use the --from-classifier option.
(venv) $ pip-licenses --from-classifier --with-system
Name Version License
Django 2.0.2 BSD License
PTable 0.9.2 BSD License
pip 9.0.1 MIT License
pip-licenses 1.0.0 MIT License
pytz 2017.3 MIT License
setuptools 38.5.0 MIT LicenseBy default, system packages such as pip and setuptools are ignored.
If you want to output all including system package, use the --with-system option.
(venv) $ pip-licenses --with-system
Name Version License
Django 2.0.2 BSD
PTable 0.9.2 BSD (3 clause)
pip 9.0.1 MIT
pip-licenses 1.0.0 MIT License
pytz 2017.3 MIT
setuptools 38.5.0 UNKNOWNWhen executed with the --with-authors option, output with author of the package.
(venv) $ pip-licenses --with-authors
Name Version License Author
Django 2.0.2 BSD Django Software Foundation
pytz 2017.3 MIT Stuart BishopFor packages without Metadata, the license is output as UNKNOWN. To get more package information, use the --with-urls option.
(venv) $ pip-licenses --with-urls
Name Version License URL
Django 2.0.2 BSD https://www.djangoproject.com/
pytz 2017.3 MIT http://pythonhosted.org/pytzWhen executed with the --ignore-packages option, ignore the package specified by argument from list output.
(venv) $ pip-licenses --ignore-packages django
Name Version License
pytz 2017.3 MITPackage names of arguments can be separated by spaces.
(venv) $ pip-licenses --with-system --ignore-packages django pip pip-licenses
Name Version License
PTable 0.9.2 BSD (3 clause)
pytz 2017.3 MIT
setuptools 38.5.0 UNKNOWNBy default, it is ordered by package name.
If you give arguments to the --order option, you can output in other sorted order.
(venv) $ pip-licenses --order=licenseWhen executed with the --format-markdown option, you can output list in markdown format.
(venv) $ pip-licenses --format-markdown
| Name | Version | License |
|--------|---------|---------|
| Django | 2.0.2 | BSD |
| pytz | 2017.3 | MIT |When inserted in a markdown document, it is rendered as follows:
| Name | Version | License |
|---|---|---|
| Django | 2.0.2 | BSD |
| pytz | 2017.3 | MIT |
When executed with the --format-rst option, you can output list in "Grid tables" of reStructuredText format.
(venv) $ pip-licenses --format-rst
+--------+---------+---------+
| Name | Version | License |
+--------+---------+---------+
| Django | 2.0.2 | BSD |
+--------+---------+---------+
| pytz | 2017.3 | MIT |
+--------+---------+---------+When executed with the --format-confluence option, you can output list in Confluence (or JIRA) Wiki markup format.
(venv) $ pip-licenses --format-confluence
| Name | Version | License |
| Django | 2.0.2 | BSD |
| pytz | 2017.3 | MIT |When executed with the --format-html option, you can output list in HTML table format.
(venv) $ pip-licenses --format-html
<table>
<tr>
<th>Name</th>
<th>Version</th>
<th>License</th>
</tr>
<tr>
<td>Django</td>
<td>2.0.2</td>
<td>BSD</td>
</tr>
<tr>
<td>pytz</td>
<td>2017.3</td>
<td>MIT</td>
</tr>
</table>Other, please make sure to execute the --help option.
- PTable by Luke Maurits and maintainer of fork version Kane Blueriver under the BSD-3-Clause License
pip-licenses has been implemented in the policy to minimize the dependence on external package.
Uninstall package and dependent package with pip command.
$ pip uninstall pip-licenses PTable