1. pip简介
Pip is a package-management system written in Python and is used to install and manage software packages. The Python Software Foundation recommends using pip for installing Python applications and its dependencies during deployment. Pip connects to an online repository of public packages, called the Python Package Index. Pip can be configured to connect to other package repositories (local or remote), provided that they comply to Python Enhancement Proposal 503.
Most distributions of Python come with pip preinstalled. Python 2.7.9 and later (on the python2 series), and Python 3.4 and later include pip by default.
相关文档:
2. 安装pip
低版本的python没有默认安装pip,这时就需要手动安装。
方法一:
1 | python -m ensurepip |
方法二:
1 | wget https://bootstrap.pypa.io/get-pip.py |
3. 查看pip路径
查找默认python的pip路径
1 | which pip |
查看特定python的pip路径,已知python路径为/path/to/python
1 | ls -l /path/to/pip |
pip bin一般和python bin在相同路径。
4. pip常用命令
4.1. 安装软件包
安装最新软件包
1 | pip install requests |
安装指定版本的软件包
1 | pip install requests==2.25.1 |
更多版本控制方法,参考【pip控制软件版本】一节。
安装wheel包
1 | pip install xxx.whl |
4.2. 指定pypi加速
1 | pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple |
4.3. 批量安装软件包
1、依赖的软件包,全部写入 requirements.txt 文件中,例如
1 | pylint=2.17.0 |
2、执行安装
1 | pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple |
4.4. 下载软件包
下载软件包但不安装
1 | pip download requests -d "./" |
4.5. 查看软件包
查看软件包
1 | pip show requests |
查看需要升级的软件包
1 | pip list -o |
4.6. 升级软件包
1 | pip install --upgrade requests |
4.7. 卸载软件包
1 | pip uninstall requests |
4.8. 查看兼容问题
1 | pip check package_name |
5. pip控制软件版本
pip安装软件时,控制软件版本的符号及其含义如下:
1 | ==: 精确版本。如 requests==2.25.1,表示只安装 requests 的 2.25.1 版本。 |
6. python软件包的依赖
Python 软件包中的依赖通常分为两种类型:必要依赖(也称为硬依赖)和可选依赖(也称为软依赖)。
必要依赖(硬依赖):
必要依赖是指一个 Python 包正常运行所必需的其他包。这些依赖通常包含在包的 setup.py 或 setup.cfg 文件中,或者在一个名为 requirements.txt 的文件中。当你使用 pip 安装一个包时,必要依赖会自动被安装。
例如,如果一个包名为 foo 的必要依赖是 bar 和 baz,那么当你运行 pip install foo
时,pip 会自动安装 foo、bar 和 baz。
可选依赖(软依赖):
可选依赖是指那些对于一个 Python 包的核心功能不是必需的,但可能对某些额外功能或特性有用的其他包。可选依赖通常在 setup.py 或 setup.cfg 文件中的 “extras_require” 部分定义。
当你使用 pip 安装一个包时,可选依赖默认不会被安装。但是,你可以通过在包名后面使用方括号([]
)并指定可选依赖的名称,来告诉 pip 安装某个或多个可选依赖。
例如,假设一个名为 foo 的包具有以下可选依赖:testing、docs
1 | extras_require = { |
那么安装可选依赖的方法为:
1 | pip install foo[testing] |
并非所有包都定义了all
可选依赖,all
的定义方法为:
1 | extras_require["all"] = list(set(reduce(operator.add, [requires, test_requirements, *extras_require.values()]))) |
7. ModuleNotFoundError处理方法
python 报错 ModuleNotFoundError: No module named ‘xxx’ ,该怎么找到module对应的package?
一般情况下,直接执行pip install安装package即可
1 | pip install xxx |
但是,某些情况下xxx这个module,对应的package名称并不是xxx,这时可以通过搜索引擎或者chatgpt查找xxx这个module对应的package。
module和package的对应关系,可以参考《Python基础》