pip 问题与修复
pip 全局缓存 默认情况下,pip 会将下载的包缓存在 ~/.cache/pip 目录中。 安装包时检查缓存 在安装包时,pip 会优先检查缓存目录,如果缓存中存在对应的包版本,就不会重新下载。 -…
pip 全局缓存
默认情况下,pip 会将下载的包缓存在 ~/.cache/pip 目录中。
安装包时检查缓存 在安装包时,pip 会优先检查缓存目录,如果缓存中存在对应的包版本,就不会重新下载。
1Using cached docx-0.2.4-py3-none-any.whl # 使用缓存
2Downloading docx-0.2.4-py3-none-any.whl # 未使用缓存
1pip install --no-cache-dir docx==0.2.4 # 强制不使用缓存, 从 PyPI 重新下载
2pip cache purge # 手动清理了缓存目录, pip 将无法从缓存中读取,需重新从 PyPI 下载包
pip 安装范围
1pip install "fastapi[all]" # 不能去掉引号
2pip install fastapi
**pip install "fastapi[all]"**
- 含义:安装 FastAPI 以及它的所有可选依赖项。
- 适用场景:
- 想使用 FastAPI 的所有功能,或者不清楚需要哪些依赖时。
- 快速搭建完整的开发环境,避免遗漏依赖。
- 安装命令等效于:
pip install fastapi uvicorn[standard] pydantic sqlalchemy databases jinja2 websockets
**pip install fastapi**
- 含义:仅安装 FastAPI 核心包,不包括任何额外依赖。
- 适用场景:
- 已经有现成的 Web 服务器(如 Gunicorn)或依赖管理机制。
- 想手动选择和安装自己需要的依赖。
- 希望保持安装环境精简,避免额外包。
pip 安装没权限
- 使用管理员权限运行 PowerShell
- 以“管理员身份”启动 IntelliJ IDEA,只要 IntelliJ IDEA 是以管理员身份运行的,它内置的终端也就拥有管理员权限。
pip 用户级配置文件
1[global]
2proxy = 127.0.0.1:7890
3index-url = https://mirrors.aliyun.com/pypi/simple/
4
5[install]
6trusted-host = pypi.org
7 mirrors.aliyun.com
pip –no-build-isolation 参数
1pip install "xinference[all]" --no-build-isolation
--no-build-isolation 的作用是 禁用默认的构建隔离机制 不要使用临时隔离环境构建包,而是直接使用当前 Python 环境中已经安装的构建依赖。
pip download 下载不了最新版本的依赖
1pip download greenlet~=3.2.1 -d ./packages
2Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
3ERROR: Could not find a version that satisfies the requirement greenlet~=3.2.1 (from versions: 0.1, 0.2, 0.3, 0.3.1, 0.3.2, 0.3.3, 0.3.4, 0.4.0, 0.4.1, 0.4.2, 0.4.3, 0.4.4, 0.4.5, 0.4.6, 0.4.7, 0.4.9, 0.4.10, 0.4.11, 0.4.12, 0.4.13, 0.4.14, 0.4.15, 0.4.16, 0.4.17, 1.0a1, 1.0.0, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.3.post0, 2.0.0a1, 2.0.0a2, 2.0.0rc1, 2.0.0rc2, 2.0.0rc3, 2.0.0rc4, 2.0.0rc5, 2.0.0, 2.0.0.post0, 2.0.1, 2.0.2, 3.0.0a1, 3.0.0rc1, 3.0.0rc2, 3.0.0rc3, 3.0.0, 3.0.1, 3.0.2, 3.0.3, 3.1.0, 3.1.1)
4ERROR: No matching distribution found for greenlet~=3.2.1
因为 pip 命令的 python 版本过低,pip download 会根据您当前的 Python 版本和操作系统,筛选出兼容的包进行下载。如果某个包的元数据(如 Requires-Python 字段)指定了特定的 Python 版本范围,而您的环境不满足该要求,pip download 将不会下载该包。
例如,langchain 的某些版本要求 Python 版本在 >=3.9,<4.0 范围内。如果您使用的是 Python 3.8 或 3.12,pip download 可能会因为版本不兼容而无法下载对应的包。
requirements.txt 格式
1uvicorn~=0.32.0 # 安装兼容版本 0.32.0 但不能超出 0.33.0
2uvicorn==0.32.0 # 安装确切版本 0.32.0 的 uvicorn
3uvicorn>=0.32.0 # 安装版本大于或等于 0.32.0 的 uvicorn
4uvicorn<=0.32.0 # 安装版本小于或等于 0.32.0 的 uvicorn
5uvicorn>0.32.0 # 安装版本大于 0.32.0 的 uvicorn
6uvicorn<0.32.0 # 安装版本小于 0.32.0 的 uvicorn
7uvicorn # 安装最新版本的 uvicorn
8uvicorn>=0.32.0,<0.35.3 # 安装版本在 0.32.0 和 0.35.3 之间的 uvicorn(不包括 0.35.3)
9uvicorn[standard]==0.32.0 # 安装 0.32.0 版本的 uvicorn,并包含标准功能集的依赖
10./local_package/ # 从当前目录下的 local_package 文件夹安装本地包
11git+https://github.com/encode/uvicorn.git@main # 从 GitHub 上的 uvicorn 仓库安装最新的主分支代码