‹ 返回笔记 Esc·

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 安装没权限

  1. 使用管理员权限运行 PowerShell
  2. 以“管理员身份”启动 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 仓库安装最新的主分支代码