pip 包管理工具
# pip 包管理工具
pip
是 Python 的官方包安装程序,也是 Python 生态系统中最核心的工具之一。它允许你轻松地从 PyPI (Python Package Index)——一个庞大的第三方 Python 软件包存储库——查找、下载和安装你需要的库。
熟练使用 pip
是每个 Python 开发者的基本功。
# 1. 检查与升级 pip
通常,如果你安装了 Python 3.4 或更高版本的解释器,pip
已经随之一起安装了。
# 1.1 检查 pip 版本
打开你的终端或命令行,输入:
pip --version
# 或者
pip3 --version
2
3
提示: 在某些系统中,
pip
可能指向为 Python 2 安装的 pip,而pip3
明确指向为 Python 3 安装的 pip。建议优先使用pip3
或使用python -m pip
来确保你正在为正确的 Python 版本安装包。
# 1.2 升级 pip
pip
本身也是一个包,可以被升级。保持 pip
为最新版本是一个好习惯,因为新版本通常会带来性能提升和功能改进。
# Windows
python -m pip install --upgrade pip
# macOS / Linux
pip3 install --upgrade pip
2
3
4
5
# 2. pip 核心命令
# 2.1 安装包 (install
)
这是最常用的命令。
# 安装最新版本的包
pip install requests
# 安装特定版本的包
pip install requests==2.25.1
# 安装最低版本要求
pip install requests>=2.20
# 安装一个范围内的版本
pip install "requests>2.0,<3.0"
2
3
4
5
6
7
8
9
10
11
# 2.2 卸载包 (uninstall
)
移除一个已经安装的包。
pip uninstall requests
pip
会显示将要被删除的文件并请求确认,输入 y
即可。
# 2.3 查看已安装的包 (list
)
列出当前环境中所有已安装的包及其版本。
pip list
# 2.4 查看包的详细信息 (show
)
显示指定包的详细信息,包括版本、作者、依赖关系等。
pip show requests
# 2.5 检查依赖兼容性 (check
)
检查已安装的包之间是否存在版本不兼容的依赖关系。
pip check
# 如果一切正常,会输出:No broken requirements found.
2
# 3. 使用 requirements.txt
管理依赖
在项目中,手动一个一个地安装依赖包是非常低效且不可靠的。最佳实践是使用一个 requirements.txt
文件来记录项目的所有依赖。
# 3.1 生成 requirements.txt
pip freeze
命令可以输出当前环境中所有已安装包的精确版本列表。我们可以将其重定向到一个文件中。
pip freeze > requirements.txt
最佳实践:为了保持 requirements.txt
的干净,强烈建议在虚拟环境中使用 pip freeze
,这样可以确保只包含当前项目必需的依赖,而不会混入全局环境中其他的包。
# 3.2 从 requirements.txt
安装
当你拿到一个新项目,或者需要在一个新的环境中部署时,可以使用 -r
或 --requirement
标志来一次性安装所有依赖。
pip install -r requirements.txt
# 4. pip 配置与网络优化
# 4.1 更改 pip 下载源
由于网络原因,直接从官方 PyPI 下载包有时会很慢。我们可以将 pip
的下载源更改为国内的镜像服务器,以显著提高下载速度。
# 4.1.1 临时使用镜像源
在 pip install
命令中使用 -i
参数,可以临时指定一个镜像源。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
# 4.1.2 永久配置镜像源
Windows:
- 在用户目录下 (例如
C:\Users\YourUsername
) 创建一个名为pip
的文件夹。 - 在
pip
文件夹内创建一个pip.ini
文件。 - 在
pip.ini
文件中写入以下内容:[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple
1
2
macOS / Linux:
- 在你的用户主目录下创建
.pip
文件夹:mkdir ~/.pip
- 在
~/.pip/
目录下创建一个pip.conf
文件。 - 在
pip.conf
文件中写入以下内容:[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple
1
2
常用国内镜像源:
- 清华大学:
https://pypi.tuna.tsinghua.edu.cn/simple
- 阿里云:
https://mirrors.aliyun.com/pypi/simple/
- 中国科技大学:
https://pypi.mirrors.ustc.edu.cn/simple/
- 豆瓣:
http://pypi.douban.com/simple/
# 4.2 确认当前配置
想知道当前的 pip 配置(例如,正在使用哪个镜像源)?可以使用 pip config list
命令。
pip config list
它会列出所有生效的配置及其来源文件。
# 4.3 处理网络代理问题
如果你在公司或学校等有网络代理的环境中,或者使用了 VPN,可能会遇到 ProxyError
。
解决方案 1:临时绕过代理
在 pip
命令后添加 --proxy ""
参数,表示本次操作不使用任何代理。
pip --proxy "" install requests
解决方案 2:配置 pip 使用代理 如果必须通过代理访问网络,可以配置 pip 使用它。
# 临时指定
pip install --proxy http://user:password@proxy.server:port requests
# 永久配置 (写入 pip.ini 或 pip.conf)
# [global]
# proxy = http://user:password@proxy.server:port
2
3
4
5
6
如果代理不需要用户名和密码,则格式为 http://proxy.server:port
。
# 5. 虚拟环境与 pip
虚拟环境 (Virtual Environments) 是 Python 开发中的一个至关重要的概念。它允许你为每个项目创建一个独立的、隔离的 Python 环境。
- 为什么需要虚拟环境?
- 依赖隔离:项目 A 可能需要
requests==2.20
,而项目 B 需要requests==2.28
。虚拟环境可以防止这种版本冲突。 - 保持全局环境清洁:避免将所有包都安装到全局 Python 环境中,使其变得混乱。
- 项目可复现性:结合
requirements.txt
,可以确保其他开发者或部署服务器能够精确地复制你的开发环境。
- 依赖隔离:项目 A 可能需要
# 创建和使用虚拟环境 (以 venv
为例)
从 Python 3.3 开始,venv
模块已成为标准库的一部分。
创建虚拟环境 在你的项目目录下,运行:
# venv 是你给虚拟环境起的名字,通常就叫 venv python -m venv venv
1
2激活虚拟环境
- Windows:
.\venv\Scripts\activate
1 - macOS / Linux:激活后,你的命令行提示符前会显示
source venv/bin/activate
1(venv)
,表示你正处于虚拟环境中。
- Windows:
在虚拟环境中使用 pip 激活后,你使用的
pip
命令将只对当前虚拟环境生效。退出虚拟环境
deactivate
1
# 6. 高级安装方式
# 6.1 从本地文件安装
有时你需要安装一个本地的包,例如一个 .whl
(Wheel) 文件或 .tar.gz
源码包。
# 安装 wheel 文件
pip install some_package-1.0-py3-none-any.whl
# 安装源码包
pip install some_package-1.0.tar.gz
2
3
4
5
# 6.2 可编辑模式安装 (-e
)
在开发一个 Python 包时,这个命令非常有用。它会以“可编辑”模式安装你的项目。 假设你的项目结构如下:
my_project/
├── setup.py
└── my_package/
└── __init__.py
2
3
4
在 my_project
目录下运行:
pip install -e .
这会在你的环境中创建一个指向项目代码的链接。这意味着,你在项目中对 .py
文件所做的任何修改,都会立即生效,无需重新安装。这极大地提高了开发效率。