pip 安装
pip 管理的是某个 Python 解释器中的包。使用 python -m pip 可以明确绑定当前解释器;有多个环境时,先确认使用的是哪一个 Python。
Windows
从 python.org 安装的 Python 通常包含 pip。以下命令使用 Windows 的 Python 启动器:
py --version
py -m pip --version
若该解释器确实缺少 pip,可先尝试:
py -m ensurepip --upgrade
为项目创建虚拟环境:
py -m venv .venv
.\.venv\Scripts\python.exe -m pip --version
之后可以激活虚拟环境,也可以直接使用上面的解释器路径运行 pip;无需为了安装项目依赖修改系统 Python。
Linux(Ubuntu)
Ubuntu 的系统 Python 由发行版维护,先安装相应工具,再在项目目录创建虚拟环境:
sudo apt update
sudo apt install python3-pip python3-venv
python3 -m venv .venv
source .venv/bin/activate
python -m pip --version
遇到 externally-managed-environment 时,优先使用虚拟环境。不要为了安装普通项目依赖直接对系统环境使用 sudo pip 或 --break-system-packages。
pip 的使用
下面的 python 指向目标项目环境;Windows 未激活环境时,可以替换为 .\.venv\Scripts\python.exe。
python -m pip --version # 显示 pip 版本与所在路径
python -m pip install --upgrade pip # 更新当前环境中的 pip
python -m pip install requests # 安装一个实际存在的包
python -m pip install "requests>=2,<3" # 按版本范围安装
python -m pip install --upgrade requests
python -m pip show requests # 查看指定包的信息
python -m pip show -f requests # 进一步列出安装的文件
python -m pip list # 列出已安装的包
python -m pip list --outdated # 查看可升级的包
python -m pip check # 检查已声明的依赖是否兼容
python -m pip uninstall requests # 卸载前会要求确认
指定精确版本的语法是 包名==版本号,例如把项目锁文件中要求的完整版本传给 pip;不要把旧教程中的示例版本当作所有项目的固定要求。
requirements 文件
在项目目录中:
python -m pip freeze > requirements.txt
python -m pip install -r requirements.txt
第一条会写入当前环境的包版本;如果已有项目维护的 requirements.txt,应先检查内容或另存文件,避免覆盖原来的依赖说明。pip freeze 不等于跨操作系统、跨 Python 版本都能直接复现的完整锁定方案。
搜索包和指定镜像
PyPI 已停止支持 pip search 使用的 XML-RPC 搜索接口。查包请使用 PyPI 搜索页;查看某个包有哪些可用版本,可以运行:
python -m pip index versions requests
临时指定镜像:
python -m pip install requests --index-url https://pypi.tuna.tsinghua.edu.cn/simple
查看模块搜索路径
在终端执行:
python -m site
或者在 Python 脚本/交互解释器中执行:
import sys
print(sys.executable)
print(sys.path)
不要把终端命令、or 和 Python 语句混在同一个可执行代码块里。
评论将在接近此处时加载,也可点击立即加载。