pip list

用法

python -m pip list [options]
py -m pip list [options]

描述

列出已安装的包,包括可编辑的包。

包按不区分大小写的排序顺序列出。

选项

-o, --outdated

列出过时的包

(环境变量:PIP_OUTDATED)

-u, --uptodate

列出最新的包

(环境变量:PIP_UPTODATE)

-e, --editable

列出可编辑的项目。

(环境变量:PIP_EDITABLE)

-l, --local

如果在具有全局访问权限的虚拟环境中,则不列出全局安装的包。

(环境变量:PIP_LOCAL)

--user

仅输出安装在用户站点中的包。

(环境变量:PIP_USER)

--path <path>

将列出包的范围限制在指定的安装路径(可以多次使用)。

(环境变量:PIP_PATH)

--pre

包括预发布和开发版本。默认情况下,pip 只找到稳定版本。

(环境变量:PIP_PRE)

--format <list_format>

在以下格式中选择输出格式:columns(默认)、freeze 或 json。'freeze' 格式不能与 --outdated 选项一起使用。

(环境变量:PIP_FORMAT)

--not-required

列出不是已安装包的依赖关系的包。

(环境变量:PIP_NOT_REQUIRED)

--exclude-editable

从输出中排除可编辑的包。

(环境变量:PIP_EXCLUDE_EDITABLE)

--include-editable

在输出中包含可编辑的包。

(环境变量:PIP_INCLUDE_EDITABLE)

--exclude <package>

从输出中排除指定的包

(环境变量:PIP_EXCLUDE)

-i, --index-url <url>

Python 包索引的基本 URL(默认值为 https://pypi.ac.cn/simple)。这应该指向符合 PEP 503(简单存储库 API)的存储库或以相同格式布局的本地目录。

(环境变量:PIP_INDEX_URL, PIP_PYPI_URL)

--extra-index-url <url>

除了 --index-url 之外,要使用的包索引的额外 URL。应遵循与 --index-url 相同的规则。

(环境变量:PIP_EXTRA_INDEX_URL)

--no-index

忽略包索引(只查看 --find-links URL)。

(环境变量:PIP_NO_INDEX)

-f, --find-links <url>

如果是一个 URL 或指向 html 文件的路径,则解析到存档的链接,例如 sdist (.tar.gz) 或 wheel (.whl) 文件。如果是一个本地路径或 file:// URL,它是一个目录,则在目录列表中查找存档。不支持到 VCS 项目 URL 的链接。

(环境变量:PIP_FIND_LINKS)

示例

  1. 列出已安装的包(使用默认的列格式)。

    $ python -m pip list
    Package Version
    ------- -------
    docopt  0.6.2
    idlex   1.13
    jedi    0.9.0
    
    C:\> py -m pip list
    Package Version
    ------- -------
    docopt  0.6.2
    idlex   1.13
    jedi    0.9.0
    
  2. 列出过时的包,并使用列格式。

    $ python -m pip list --outdated --format columns
    Package    Version Latest Type
    ---------- ------- ------ -----
    retry      0.8.1   0.9.1  wheel
    setuptools 20.6.7  21.0.0 wheel
    
    C:\> py -m pip list --outdated --format columns
    Package    Version Latest Type
    ---------- ------- ------ -----
    retry      0.8.1   0.9.1  wheel
    setuptools 20.6.7  21.0.0 wheel
    
  3. 列出不是其他包的依赖关系的包。可以与其他选项组合使用。

    $ python -m pip list --outdated --not-required
    Package  Version Latest Type
    -------- ------- ------ -----
    docutils 0.14    0.17.1 wheel
    
    C:\> py -m pip list --outdated --not-required
    Package  Version Latest Type
    -------- ------- ------ -----
    docutils 0.14    0.17.1 wheel
    
  4. 使用 json 格式

    $ python -m pip list --format=json
    [{'name': 'colorama', 'version': '0.3.7'}, {'name': 'docopt', 'version': '0.6.2'}, ...
    
    C:\> py -m pip list --format=json
    [{'name': 'colorama', 'version': '0.3.7'}, {'name': 'docopt', 'version': '0.6.2'}, ...
    
  5. 使用 freeze 格式

    $ python -m pip list --format=freeze
    colorama==0.3.7
    docopt==0.6.2
    idlex==1.13
    jedi==0.9.0
    
    C:\> py -m pip list --format=freeze
    colorama==0.3.7
    docopt==0.6.2
    idlex==1.13
    jedi==0.9.0
    
  6. 列出以可编辑模式安装的包

当一些包以可编辑模式安装时,pip list 会输出一个额外的列,显示可编辑项目所在的目录(即包含 pyproject.tomlsetup.py 文件的目录)。

$ python -m pip list
Package          Version  Editable project location
---------------- -------- -------------------------------------
pip              21.2.4
pip-test-package 0.1.1    /home/you/.venv/src/pip-test-package
setuptools       57.4.0
wheel            0.36.2
C:\> py -m pip list
Package          Version  Editable project location
---------------- -------- ----------------------------------------
pip              21.2.4
pip-test-package 0.1.1    C:\Users\You\.venv\src\pip-test-package
setuptools       57.4.0
wheel            0.36.2

json 格式会输出一个额外的 editable_project_location 字段。

$ python -m pip list --format=json | python -m json.tool
[
  {
    "name": "pip",
    "version": "21.2.4",
  },
  {
    "name": "pip-test-package",
    "version": "0.1.1",
    "editable_project_location": "/home/you/.venv/src/pip-test-package"
  },
  {
    "name": "setuptools",
    "version": "57.4.0"
  },
  {
    "name": "wheel",
    "version": "0.36.2"
  }
]
C:\> py -m pip list --format=json | py -m json.tool
[
  {
    "name": "pip",
    "version": "21.2.4",
  },
  {
    "name": "pip-test-package",
    "version": "0.1.1",
    "editable_project_location": "C:\Users\You\.venv\src\pip-test-package"
  },
  {
    "name": "setuptools",
    "version": "57.4.0"
  },
  {
    "name": "wheel",
    "version": "0.36.2"
  }
]

注意

freeze 命令相反,pip list --format=freeze 不会报告可编辑安装信息,而是报告安装时包的版本。