建立Python 离线软件仓库(wheelhouse)
建立一个自己的 Python 离线软件仓库(wheelhouse)。以后换电脑,只要把这个目录复制过去,就可以完全离线安装,不需要再次从官方下载。
1. 先找到你现在这个 Torch 到底缓存在哪里
最可靠的方法不是猜路径,而是让 pip 自己告诉你:
python -m pip cache dir
Windows 上通常会得到:
C:\Users\Logic\AppData\Local\pip\Cache
你还可以查看缓存信息:
python -m pip cache info
以及查看 pip 能识别到的 wheel 缓存:
python -m pip cache list
筛选 Torch:
python -m pip cache list | findstr /i torch
不过这里有一个容易误解的地方:
Using cached torch-2.5.1+cu118-cp311-cp311-win_amd64.whl
并不一定意味着这个 .whl 就以原文件名直接躺在:
C:\Users\Logic\AppData\Local\pip\Cache
pip 的 HTTP 缓存可能使用哈希文件名和子目录保存。
所以如果你想把这个 2.7GB Torch 文件真正找出来,PowerShell 可以直接按文件大小搜索:
$cache = python -m pip cache dir
Get-ChildItem $cache -Recurse -File |
Where-Object { $_.Length -gt 2GB } |
Select-Object FullName, Length
如果想把所有比较大的文件列出来:
$cache = python -m pip cache dir
Get-ChildItem $cache -Recurse -File |
Sort-Object Length -Descending |
Select-Object -First 30 FullName, Length
这样你基本就能看到这个 2.7GB 文件到底在哪。
2. 但是:不要直接复制 pip Cache
这是最重要的一点。
你完全可以把:
C:\Users\Logic\AppData\Local\pip\Cache
整个复制到另一台机器,但我不推荐把它作为你的长期方案。
因为 pip Cache 是 pip 自己内部使用的缓存结构,里面除了 wheel,还有 HTTP 缓存、元数据等。它适合:
“我曾经下载过,再安装一次时尽量复用。”
而你真正想要的是:
“这是我的 Python 3.11 AI 软件仓库,以后任何一台电脑都可以从这里安装。”
这时候应该使用:
wheelhouse
也就是:
D:\wheelhouse\ai311\
里面直接存放:
numpy-xxx.whl
scipy-xxx.whl
pandas-xxx.whl
...
torch-2.5.1+cu118-xxx.whl
以后:
电脑 A ─┐
电脑 B ─┼──> D:\wheelhouse\ai311
电脑 C ─┘
非常干净。
3. 把你现在这套 AI 环境一次性下载下来
按照我们前面确定的版本:
Python 3.11
NumPy 2.2.6
SciPy 1.15.3
Pandas 2.2.3
Matplotlib 3.10.1
Scikit-learn 1.6.1
PyTorch 2.5.1+cu118
torchvision 0.20.1+cu118
torchaudio 2.5.1+cu118
先建立仓库:
mkdir D:\wheelhouse\ai311
然后下载普通科学计算包:
python -m pip download `
--only-binary=:all: `
-d D:\wheelhouse\ai311 `
numpy==2.2.6 `
scipy==1.15.3 `
pandas==2.2.3 `
matplotlib==3.10.1 `
scikit-learn==1.6.1
然后下载 CUDA 11.8 的 PyTorch:
python -m pip download `
--only-binary=:all: `
-d D:\wheelhouse\ai311 `
torch==2.5.1+cu118 `
torchvision==0.20.1+cu118 `
torchaudio==2.5.1+cu118 `
--index-url https://download.pytorch.org/whl/cu118
这里有一个关键好处:
pip download
不会安装软件,只负责下载 wheel 和依赖。
因此你最终会得到一个类似:
D:\wheelhouse\ai311\
│
├── numpy-2.2.6-...
├── scipy-1.15.3-...
├── pandas-2.2.3-...
├── matplotlib-3.10.1-...
├── scikit_learn-1.6.1-...
│
├── torch-2.5.1+cu118-cp311-cp311-win_amd64.whl
├── torchvision-0.20.1+cu118-...
├── torchaudio-2.5.1+cu118-...
│
├── pillow-...
├── sympy-...
├── networkx-...
├── jinja2-...
└── 其他依赖...
注意:依赖也会一起下载,所以这实际上已经变成了一个小型离线 PyPI 仓库。
4. 以后换一台电脑怎么安装?
假设新电脑也是:
Windows x64
Python 3.11
把整个:
D:\wheelhouse\ai311
复制过去,例如:
E:\wheelhouse\ai311
然后:
python -m pip install `
--no-index `
--find-links=E:\wheelhouse\ai311 `
numpy==2.2.6 `
scipy==1.15.3 `
pandas==2.2.3 `
matplotlib==3.10.1 `
scikit-learn==1.6.1 `
torch==2.5.1+cu118 `
torchvision==0.20.1+cu118 `
torchaudio==2.5.1+cu118
这里:
--no-index
意思是:
完全不要访问网上的软件源。
而:
--find-links=E:\wheelhouse\ai311
意思是:
去这个目录寻找
.whl。
于是整个安装过程就变成:
本地 wheelhouse
↓
pip
↓
Python 3.11 虚拟环境
完全不需要联网。
5. 更推荐的做法:建立 requirements.txt
你的环境已经比较固定了,我建议把版本写成:
numpy==2.2.6
scipy==1.15.3
pandas==2.2.3
matplotlib==3.10.1
scikit-learn==1.6.1
torch==2.5.1+cu118
torchvision==0.20.1+cu118
torchaudio==2.5.1+cu118
保存为:
ai311.txt
以后下载:
python -m pip download `
--only-binary=:all: `
-r ai311.txt `
-d D:\wheelhouse\ai311
不过这里由于 PyTorch 使用独立的 CUDA 11.8 软件源,我仍然建议把 PyTorch 和普通科学计算包分两次 pip download,这样最不容易发生源解析问题。
6. 甚至可以把整个 wheelhouse 打成一个压缩包
例如:
D:\wheelhouse\ai311
变成:
ai311-wheelhouse.zip
以后:
电脑 A
↓
ai311-wheelhouse.zip
↓
电脑 B
↓
解压
↓
pip install --no-index --find-links=...
这实际上比“复制 pip Cache”更像真正的离线 Python 软件包仓库。
7. 再进一步:可以让 pip 永久优先使用你的本地仓库
例如你的本地仓库固定为:
D:\wheelhouse\ai311
那么可以配置:
pip config set global.no-index true
pip config set global.find-links D:\wheelhouse\ai311
以后:
pip install numpy
就会直接从:
D:\wheelhouse\ai311
找。
不过这个配置会让 pip 默认完全不联网,所以我不建议你现在全局打开。更实用的是在需要离线安装的时候显式使用:
--no-index --find-links=...
对你这台机器,我建议最终形成这样的结构
D:\
├── venvs\
│ └── ai311\
│
└── wheelhouse\
└── ai311\
├── numpy
├── scipy
├── pandas
├── matplotlib
├── scikit-learn
├── torch
├── torchvision
├── torchaudio
└── dependencies...
这样你的 Python 环境 和 软件包仓库 是分离的:
wheelhouse
↓
创建多少个 venv 都可以重复使用
这比保存某一个 venv 本身更合理。
尤其是你后面还要装 FlagEmbedding、BGE、Transformers、JupyterLab 等 AI 包,我建议进一步给你做成一个完整的 ai311-wheelhouse 离线包仓库,把你目前这套 NumPy/PyTorch/Jupyter/Embedding 环境一起整理进去。

浙公网安备 33010602011771号