要在下载时就直接把whl文件保存下来。使用 pip download 命令就可以做到:

# 将 pandas 及其依赖的所有包下载到当前目录下的 wheelhouse 文件夹
pip download pandas -d ./wheelhouse

这样,所有 .whl 文件都会直接、清晰地保存在你指定的 wheelhouse 文件夹里,无需再手动查找。

你下载到 ./wheelhouse 文件夹里的 .whl 文件,可以用一条命令一次性全部安装。Pip 支持从本地目录安装,并且会自动处理依赖关系。

✅ 最佳命令(推荐)

进入 wheelhouse 文件夹所在的目录,执行:

pip install --no-index --find-links ./wheelhouse pandas

或者更简洁的写法:

pip install --no-index -f ./wheelhouse pandas

参数说明:

  • --no-index关键参数。告诉 pip 不要从 PyPI(Python 包索引)在线查找,只使用本地源。这能确保它只安装你已经下载好的 .whl 文件。
  • --find-links-f:指定本地文件夹路径,让 pip 去这个目录里找 .whl 文件。
  • pandas:你要安装的主包名。Pip 会读取它的依赖信息,然后去 ./wheelhouse 里找对应的依赖包并安装。

pip download 默认会下载所有依赖,除非你加了 --no-deps。所以如果你之前正常执行了这条命令,./wheelhouse 里应该已经包含了 pandas 需要的所有依赖包。

检查一下你的 ./wheelhouse 文件夹里是不是有很多 .whl 文件(比如 numpy-xxx.whlsix-xxx.whl 等)? 如果只有 pandas 一个文件,那就是下载时漏了依赖。可以重新执行一次 pip download pandas -d ./wheelhouse,它会自动补全缺失的依赖。

🧪 通用安装方式(安装目录里所有包)

如果你想安装 ./wheelhouse 里的所有包(不管主包是谁),可以用这个命令:

pip install --no-index --find-links ./wheelhouse $(ls ./wheelhouse/*.whl)

或者使用通配符(部分 shell 支持):

pip install --no-index --find-links ./wheelhouse ./wheelhouse/*.whl

但这种方式可能会遇到包安装顺序问题(比如先装 pandas 再装 numpy 就会报错)。推荐还是用第一种方法:指定主包名让 pip 自己解析依赖顺序,这样最可靠。

📝 总结

场景 命令
安装已下载的 pandas 及其依赖 pip install --no-index -f ./wheelhouse pandas
安装目录里所有 whl 文件(不推荐) pip install ./wheelhouse/*.whl(可能有顺序问题)
完全离线安装(无网络环境) 同上,加上 --no-index 确保不联网

最稳妥的做法就是:pip install --no-index -f ./wheelhouse pandas,这条命令足够应对绝大多数情况。

如果要同时下载多个包及其所有依赖,直接在 pip download 后面列出所有包名即可:

📦 下载命令

pip download pandas matplotlib polars -d ./wheelhouse

这条命令会:

  • 下载 pandasmatplotlibpolars 这三个包
  • 自动下载它们各自需要的所有依赖包(如 numpypyparsingcontourpy 等)
  • 去重处理:同一个依赖包只会下载一次
  • 全部保存到 ./wheelhouse 文件夹

🔧 其他实用写法

1. 从 requirements.txt 文件读取

如果你有很多包,可以先用文件管理:

# 创建 requirements.txt,每行一个包名
echo "pandas" > requirements.txt
echo "matplotlib" >> requirements.txt
echo "polars" >> requirements.txt

# 批量下载
pip download -r requirements.txt -d ./wheelhouse

2. 指定版本

pip download pandas==2.0.3 matplotlib==3.7.0 polars==0.19.0 -d ./wheelhouse

3. 只下载特定平台的包(跨平台场景)

# 下载 Linux 版本
pip download pandas matplotlib polars -d ./wheelhouse --platform manylinux2014_x86_64 --python-version 3.11

# 下载 Windows 版本
pip download pandas matplotlib polars -d ./wheelhouse --platform win_amd64 --python-version 3.11

4. 排除某些依赖(如果有特殊需求)

# 不下载依赖(通常不推荐,除非你有特殊原因)
pip download pandas matplotlib polars -d ./wheelhouse --no-deps

# 只下载指定包的依赖,不下载包本身
pip download pandas matplotlib polars -d ./wheelhouse --no-deps --only-binary :all:

✅ 安装这些包

下载完成后,一次性安装:

pip install --no-index -f ./wheelhouse pandas matplotlib polars

或者更简单的方式(让 pip 自动识别):

pip install --no-index --find-links ./wheelhouse pandas matplotlib polars

Pip 会智能地:

  • ./wheelhouse 里找到所有需要的 .whl 文件
  • 自动处理安装顺序(例如先装 numpy 再装 pandas
  • 不会尝试连接网络

📝 验证下载是否完整

下载完成后,可以查看文件列表确认:

# Linux/macOS
ls -lh ./wheelhouse/

# Windows
dir ./wheelhouse/

你应该会看到类似这样的输出:

numpy-1.24.3-cp39-cp39-win_amd64.whl
pandas-2.0.3-cp39-cp39-win_amd64.whl
matplotlib-3.7.1-cp39-cp39-win_amd64.whl
polars-0.19.0-cp39-cp39-win_amd64.whl
pyparsing-3.0.9-py3-none-any.whl
python-dateutil-2.8.2-py2.py3-none-any.whl
...

💡 小提示

  • 磁盘空间:多个包的依赖可能会重复,不用担心,pip 会自动去重
  • 网络问题:如果下载中断,重新运行命令,pip 会跳过已下载的完整文件
  • 离线迁移:下载好的 wheelhouse 文件夹可以整个复制到离线机器上使用

如果你需要管理大型项目(几十上百个包),建议使用 requirements.txt 的方式,更加清晰易维护。

要下载适用于 Python 3.8 版本的包,需要在 pip download 命令中指定 --python-version 参数:

📦 基本命令

pip download pandas matplotlib polars -d ./wheelhouse --python-version 3.8

🔧 完整示例(跨平台场景)

如果需要在特定平台上下载,可以组合使用多个参数:

1. 下载 Windows 版本(Python 3.8)

pip download pandas matplotlib polars -d ./wheelhouse \
  --python-version 3.8 \
  --platform win_amd64 \
  --only-binary :all:

2. 下载 Linux 版本(Python 3.8)

pip download pandas matplotlib polars -d ./wheelhouse \
  --python-version 3.8 \
  --platform manylinux2014_x86_64 \
  --only-binary :all:

3. 下载 macOS 版本(Python 3.8)

pip download pandas matplotlib polars -d ./wheelhouse \
  --python-version 3.8 \
  --platform macosx_10_9_x86_64 \
  --only-binary :all:

📝 参数说明

参数 作用 示例值
--python-version 指定 Python 版本 3.83.93.10
--platform 指定操作系统平台 win_amd64manylinux2014_x86_64macosx_10_9_x86_64
--only-binary :all: 只下载预编译的 .whl 文件(不下载源码包) 推荐加上,避免下载 tar.gz 源码包
--implementation 指定 Python 实现(可选) cp(CPython,默认)、pp(PyPy)

🎯 实际应用场景

场景1:在当前环境下载 Python 3.8 版本(最常见)

如果你当前使用的就是 Python 3.8,直接下载即可,pip 会自动匹配:

# 确认当前 Python 版本
python --version  # 应该显示 3.8.x

# 直接下载(自动适配)
pip download pandas matplotlib polars -d ./wheelhouse

场景2:在 Python 3.11 环境下载 Python 3.8 版本

# 明确指定目标版本为 3.8
pip download pandas matplotlib polars -d ./wheelhouse \
  --python-version 3.8 \
  --platform win_amd64 \
  --only-binary :all:

场景3:下载多个 Python 版本的包(用于分发)

# 下载 Python 3.8 版本
pip download pandas -d ./wheelhouse/py38 --python-version 3.8 --platform win_amd64 --only-binary :all:

# 下载 Python 3.9 版本
pip download pandas -d ./wheelhouse/py39 --python-version 3.9 --platform win_amd64 --only-binary :all:

# 下载 Python 3.10 版本
pip download pandas -d ./wheelhouse/py310 --python-version 3.10 --platform win_amd64 --only-binary :all:

⚠️ 常见问题

问题1:某些包没有对应 Python 3.8 的预编译版本

# 错误示例:polars 可能不支持 Python 3.8
# 解决方法:查看包的兼容性
pip index versions polars  # 查看 polars 支持的 Python 版本

问题2:下载后安装时版本不匹配

# 安装时也要确保使用 Python 3.8
python3.8 -m pip install --no-index -f ./wheelhouse pandas

问题3:需要下载纯 Python 包(无二进制依赖)

# 纯 Python 包可以不指定 platform,只指定 Python 版本即可
pip download requests -d ./wheelhouse --python-version 3.8

💡 最佳实践

推荐命令模板(下载特定平台的 Python 3.8 版本):

pip download pandas matplotlib polars -d ./wheelhouse \
  --python-version 3.8 \
  --platform $(python -c "import platform; print(platform.system().lower() == 'windows' and 'win_amd64' or 'manylinux2014_x86_64')") \
  --only-binary :all:

或者更简单的方式:直接在 Python 3.8 环境中执行 pip download,这样最不容易出错。

📋 验证下载的包是否匹配

下载完成后,查看文件名确认版本:

ls ./wheelhouse/ | grep -E "cp38|py3"

应该看到文件名中包含 cp38py3,例如:

  • pandas-2.0.3-cp38-cp38-win_amd64.whl ✅(Python 3.8)
  • numpy-1.24.3-cp39-cp39-win_amd64.whl ❌(这是 Python 3.9 的)

如果发现版本不对,说明参数设置有问题,需要重新下载。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐