Skip to content

Latest commit

 

History

History
253 lines (187 loc) · 7.64 KB

README.md

File metadata and controls

253 lines (187 loc) · 7.64 KB

pip-licenses

Build Status PyPI version GitHub Release Codecov BSD License Requirements Status

Dump the software license list of Python packages installed with pip.

Table of Contents

Description

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

Installation

Install it via PyPI using pip command.

# Install or Upgrade to newest available version
$ pip install -U pip-licenses

Usage

Execute 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   MIT

Command-Line Options

Option: from-classifier

By 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: [email protected]
License: UNKNOWN

If 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 License

Option: with-system

By 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   UNKNOWN

Option: with-authors

When 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 Bishop

Option: with-urls

For 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/pytz

Option: ignore-packages

When 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   MIT

Package 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   UNKNOWN

Option: order

By 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=license

Option: format-markdown

When 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

Option: format-rst

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     |
+--------+---------+---------+

Option: format-confluence

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     |

Option: format-html

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>

More Information

Other, please make sure to execute the --help option.

License

MIT License

Dependencies

  • 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.

Uninstallation

Uninstall package and dependent package with pip command.

$ pip uninstall pip-licenses PTable