python包管理工具pip list详解(pythonpip包管理)

pip list用于查看已安装的库,指定的选项不同输出的结果就不同,我们可以根据需要指定不同的选项。

这里我们主要讲述以下几个常用选项:–outdated、–uptodate、–local、–user、–path、–pre、–format、–not-required、–exclude。

outdated

这个选项用于列出可以更新的安装包,可以让我们知道哪些安装包需要更新了,比如在我机器上执行以下命令:

pip list --outdated

输出如下内容:

Package    Version Latest Type
---------- ------- ------ -----
aiohttp    3.6.2   3.8.1  wheel
attrs      19.3.0  21.4.0 wheel
chardet    3.0.4   4.0.0  wheel
idna       2.9     3.3    wheel
multidict  4.7.5   5.2.0  wheel
setuptools 39.2.0  59.6.0 wheel
yarl       1.4.2   1.7.2  wheel

输出信息的每一行指出了可以更新到的版本以及安装包类型。

uptodate

这个选项列出了已是最新版本无需更新的安装包,比如在我的机器上执行以下命令:

pip list --uptodate

输出如下内容:

Package            Version
------------------ -------
async-timeout      4.0.2
dataclasses        0.8
Deprecated         1.2.13
idna-ssl           1.1.0
importlib-metadata 4.8.3
itsdangerous       2.0.1
MarkupSafe         2.0.1
packaging          21.3
pip                21.3.1
pyparsing          3.0.7
redis              4.2.0
typing_extensions  4.1.1
Werkzeug           2.0.3
wrapt              1.14.0
zipp               3.6.0

这些安装包的版本都是最新且无需更新的。

local

这个选项告诉pip如果我们是在virtualenv下且有权访问全局安装包时,不列出全局安装包,比如在我机器上执行以下命令:

pip list --local

输出内容如下:

Package            Version
------------------ -------
click              8.0.4  
dataclasses        0.8    
Flask              2.0.3  
importlib-metadata 4.8.3  
itsdangerous       2.0.1  
Jinja2             3.0.3  
MarkupSafe         2.0.1  
Pillow             8.4.0  
pip                20.0.2 
PyMySQL            1.0.2  
setuptools         46.1.3 
typing-extensions  4.1.1  
Werkzeug           2.0.3  
wheel              0.34.2 
zipp               3.6.0 

可见比前面不带local选项列出的少了一些。

user

这个选项列出安装在user-site下的安装包,即执行pip install –user时安装的包,在我机器上执行以下命令:

pip list --user

输出内容如下:

Package            Version
------------------ -------
async-timeout      4.0.2
dataclasses        0.8
Deprecated         1.2.13
importlib-metadata 4.8.3
itsdangerous       2.0.1
MarkupSafe         2.0.1
packaging          21.3
pyparsing          3.0.7
redis              4.2.0
typing_extensions  4.1.1
Werkzeug           2.0.3
wrapt              1.14.0
zipp               3.6.0

这些安装包都安装在我机器上的这个目录下:~/.local/lib/python3.6/site-packages。

path

这个选项告诉pip只列出path指定目录下的安装包,比如在我机器上执行以下命令:

pip list --path ~/.local/lib/python3.6/site-packages

输出内容与pip list –user是一样的。

pre

默认情况下pip只列出稳定版本的包,通过指定这个选项就会同时列出预发布和开发中的版本,比如在我的机器上执行以下命令:

pip list --outdated --pre

输出内容如下:

Package    Version Latest  Type
---------- ------- ------- -----
aiohttp    3.6.2   4.0.0a1 wheel
attrs      19.3.0  21.4.0  wheel
chardet    3.0.4   4.0.0   wheel
idna       2.9     3.3     wheel
multidict  4.7.5   5.2.0   wheel
setuptools 39.2.0  59.6.0  wheel
yarl       1.4.2   1.7.2   wheel

可以看到aiohttp那一行包含了alpha版本:4.0.0a1

format

这个选项指定输出格式,默认是列格式,这个选项有三个值可用,分别是:columns、freeze、json,比如执行以下命令:

pip list --uptodate --format freeze

输出内容如下:

async-timeout==4.0.2
dataclasses==0.8
Deprecated==1.2.13
idna-ssl==1.1.0
importlib-metadata==4.8.3
itsdangerous==2.0.1
MarkupSafe==2.0.1
packaging==21.3
pip==21.3.1
pyparsing==3.0.7
redis==4.2.0
typing_extensions==4.1.1
Werkzeug==2.0.3
wrapt==1.14.0
zipp==3.6.0

not-required

这个选项告诉pip只列出不被其它安装包依赖的安装包,比如在我机器上执行以下命令:

pip list --not-required

输出内容如下:

Package      Version
------------ -------
aiohttp      3.6.2
itsdangerous 2.0.1
MarkupSafe   2.0.1
pip          21.3.1
redis        4.2.0
setuptools   39.2.0
Werkzeug     2.0.3

exclude

这个选项告诉pip从列出的安装包中排除指定的安装包,也就是说这个选项指定的安装包不会出现在输出中,比如在我机器上执行以下命令:

pip list --not-required --exclude aiohttp

输出如下:

Package      Version
------------ -------
attrs        19.3.0
chardet      3.0.4
idna-ssl     1.1.0
itsdangerous 2.0.1
MarkupSafe   2.0.1
pip          21.3.1
redis        4.2.0
setuptools   39.2.0
Werkzeug     2.0.3
yarl         1.4.2

可见输出的内容已经没有aiohttp这个安装包了。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注