Python PIP包管理器
Python的标准库是一个包含大量可直接使用的模块和包的集合。除了这些包之外,Python程序员经常需要使用某些第三方库。第三方Python包存储在一个名为Python包索引(Python Package Index)的存储库中 (https://pypi.org/) 。
要从该存储库安装一个包,您需要一个包管理工具。PIP是最流行的包管理器之一。
PIP实用工具会随Python的标准发行版自动安装,特别是从3.4版本开始。它位于Python安装目录下的scripts文件夹中。 例如,在Windows计算机上安装了Python 3.11时,您可以在C:\Python311\Scripts文件夹中找到pip3.exe。
如果 pip 不是默认安装的,可以按照以下步骤进行安装。
从以下URL下载get-pip.py脚本−
https://bootstrap.pypa.io/get-pip.py
在命令提示符中运行上面的脚本来安装-
c:\Python311>python get-pip.py
在 scripts 文件夹中同时存在 pip 和 pip3。如果使用 pip 安装某个包,将安装与 Python 2.x 兼容的版本。因此,要安装与 Python 3 兼容的版本,请使用 pip3。
安装包
要从 PyPi 安装某个包,请使用 install 命令和 PIP。以下命令将 Flask 库安装到当前的 Python 安装中。
pip3 install flask
该软件包及其依赖项(如果有的话)将从PyPI存储库中安装。上述命令在终端中产生以下日志 –
Collecting flask
Downloading Flask-2.2.3-py3-none-any.whl (101 kB)
â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”
101.8/101.8 kB 3.0 MB/s eta 0:00:00
Collecting Werkzeug>=2.2.2
Downloading Werkzeug-2.2.3-py3-none-any.whl (233 kB)
â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”
233.6/233.6 kB 7.2 MB/s eta 0:00:00
Collecting Jinja2>=3.0
Downloading Jinja2-3.1.2-py3-none-any.whl (133 kB)
â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”
133.1/133.1 kB 8.2 MB/s eta 0:00:00
Collecting itsdangerous>=2.0
Downloading itsdangerous-2.1.2-py3-none-any.whl (15 kB)
Collecting click>=8.0
Downloading click-8.1.3-py3-none-any.whl (96 kB)
â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”
96.6/96.6 kB 5.4 MB/s eta 0:00:00
Requirement already satisfied: colorama in
c:\users\mlath\appdata\roaming\python\python311\site-packages (from
click>=8.0->flask) (0.4.6)
Collecting MarkupSafe>=2.0
Downloading MarkupSafe-2.1.2-cp311-cp311-win_amd64.whl (16 kB)
Installing collected packages: MarkupSafe, itsdangerous, click,
Werkzeug, Jinja2, flask
Successfully installed Jinja2-3.1.2 MarkupSafe-2.1.2 Werkzeug-2.2.3
click-8.1.3 flask-2.2.3 itsdangerous-2.1.2
默认情况下,将安装所需软件包的最新可用版本。要指定所需的版本,
pip3 install flask==2.0.0
为了测试软件包的安装是否完成,请打开Python交互式解释器并尝试导入并检查其版本。如果软件包未成功安装,您将收到一个ModuleNotFoundError错误。
>>> import flask
>>> print (flask.__version__)
2.2.3
>>> import dummypackage
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'dummypackage'
PIP实用工具可与以下内容一起使用:
- 使用需求说明符与PyPI(和其他索引)一起使用。
-
使用VCS项目URL。
-
使用本地项目目录。
-
使用本地或远程源存档。
使用requirements.txt
您可以通过在名为requirements.txt的文本文件中列出所需包的列表来一次性执行包安装。
例如,以下requirements.txt文件包含了要安装FastAPI库的依赖项列表。
anyio==3.6.2
click==8.1.3
colorama==0.4.6
fastapi==0.88.0
gunicorn==20.1.0
h11==0.14.0
idna==3.4
pydantic==1.10.4
sniffio==1.3.0
starlette==0.22.0
typing_extensions==4.4.0
uvicorn==0.20.0
现在在PIP安装命令中使用-r开关。
pip3 install -r requirements.txt
使用PIP实用工具与以下命令一起使用 –
pip uninstall
此命令用于卸载已安装的一个或多个软件包。
语法
pip3 uninstall package, [package2, package3, . . ]
这将卸载该软件包以及其依赖项。
示例
pip3 uninstall flask
在继续之前,您将被要求确认删除。
pip3 uninstall flask
Found existing installation: Flask 2.2.3
Uninstalling Flask-2.2.3:
Would remove:
c:\python311\lib\site-packages\flask-2.2.3.dist-info\*
c:\python311\lib\site-packages\flask\*
c:\python311\scripts\flask.exe
Proceed (Y/n)?
pip list
该命令显示已安装的软件包列表,包括可编辑的软件包。软件包按不区分大小写的排序顺序列出。
语法
pip3 list
以下是pip list命令的可用开关:
-o,–outdated:列出过时的软件包
pip3 list --outdated
Package Version Latest Type
-------- ------- ------- -----
debugpy 1.6.6 1.6.7 wheel
ipython 8.11.0 8.12.0 wheel
pip 22.3.1 23.0.1 wheel
Pygments 2.14.0 2.15.0 wheel
setuptools 65.5.0 67.6.1 wheel
-u,–uptodate:列出最新的软件包
pip3 list --uptodate
Package Version
-------- --------- -------
click 8.1.3
colorama 0.4.6
executing 1.2.0
Flask 2.2.3
jedi 0.18.2
Jinja2 3.1.2
python-dateutil 2.8.2
pyzmq 25.0.2
six 1.16.0
Werkzeug 2.2.3
pip show
此命令显示有关一个或多个已安装包的信息。输出为RFC兼容的邮件标头格式。
语法
pip3 show package
实例
pip3 show flask
Name: Flask
Version: 2.2.3
Summary: A simple framework for building complex web applications.
Home-page: https://palletsprojects.com/p/flask
Author: Armin Ronacher
Author-email: armin.ronacher@active-4.com
License: BSD-3-Clause
Location: C:\Python311\Lib\site-packages
Requires: click, itsdangerous, Jinja2, Werkzeug
Required-by:
pip freeze
此命令以 requirements 格式输出已安装的包。所有的包按照不区分大小写的排序顺序列出。
语法
pip3 freeze
使用以下命令可以将该命令的输出重定向到文本文件中:
pip3 freeze > requirements.txt
pip download
此命令根据需求规范从以下源下载软件包−
- 使用需求规范从PyPI(和其他索引)下载。
-
使用版本控制系统的项目URL。
-
使用本地项目目录。
-
使用本地或远程源归档文件。
实际上,pip download与pip install执行相同的分辨和下载操作,但它不安装依赖项,而是将下载的分布集合到提供的目录中(默认为当前目录)。此目录以后可以作为值传递给pip install –find-links,以便支持离线或受限制的软件包安装。
语法
pip3 download somepackage
pip search
该命令会搜索PyPI软件包,其名称或摘要包含给定的查询。
语法
pip3 search query
pip配置
此命令用于管理本地和全局配置。
子命令
- **list ** − 列出活动配置(或指定的文件)。
-
**edit ** − 在编辑器中编辑配置文件。
-
**get ** − 获取与command.option相关联的值。
-
**set ** − 设置command.option=value。
-
**unset ** − 取消与command.option相关联的值。
-
**debug ** − 列出配置文件及其定义的值。
配置键应为点分隔的命令和选项名称,特殊前缀“global”会影响所有命令。
示例
pip config set global.index-url https://example.org/
这将为所有命令配置索引URL。
pip config set download.timeout 10
这将仅为“pip下载”命令配置10秒的超时时间。