离线安装Python需分步处理:先装解释器及依赖(如python3-libs、python3-pip),再用get-pip.py配合--no-index和--find-links安装pip,最后用pip download --recursive下载完整依赖树,注意wheel平台兼容性与版本精确匹配。

离线安装Python解释器本身
Windows 和 macOS 用户直接下载对应版本的离线安装包就行,Linux 用户得看发行版。Ubuntu/Debian 系统用 apt download python3 加 dpkg -i,CentOS/RHEL 用 yumdownloader python3 或 dnf download python3,再用 rpm -ivh 安装。注意:别只下主包,python3-libs、python3-pip 这类依赖必须一并下载,否则装完 pip 命令都跑不起来。
常见错误现象:command not found: pip 或 ImportError: No module named _ssl——多半是漏了 python3-openssl 或 libssl 的离线包。
离线安装 pip 及 wheel 包
pip 本身得先有,但很多系统自带的 Python 不带 pip。最稳的方式是:在有网机器上用 python get-pip.py --no-index --find-links /path/to/wheels 生成一个带所有依赖的本地 wheel 目录,再把整个目录拷过去。别用 get-pip.py 直接联网下载——它默认会连 pypi.org,离线环境会卡死或报 ConnectionRefusedError。
关键点:
-
get-pip.py要搭配--no-index和--find-links才真正离线 - wheel 目录里必须包含
pip、setuptools、wheel三个包,缺一个pip install就可能失败 - 不同 Python 版本要对应不同 wheel(比如
pip-23.3.1-py3-none-any.whl中的py3表示 Python 3.x 兼容,但cp39表示仅限 CPython 3.9)
批量下载依赖包并处理依赖树
用 pip download 是最靠谱的方案,但它默认只下顶层包,不递归拉依赖。正确命令是:pip download --no-deps -d ./wheels requests 先下主包,再用 pip download --no-index --find-links ./wheels --recursive -d ./wheels requests 补全依赖。注意顺序不能反,否则会报 Could not satisfy constraints。
容易踩的坑:
- 没加
--no-index就运行--recursive,pip 仍会尝试联网查最新版本,直接超时 - 某些包(如
numpy、pandas)有平台限定 wheel(manylinux、win_amd64),必须和目标机器架构一致,否则安装时报is not a supported wheel on this platform -
pip download不会自动处理setup.py构建的包,遇到就只能手动在有网机器上构建好再拷贝 wheel
安装时如何避免“找不到满足条件的版本”
离线安装最常卡在版本冲突。根本原因是:pip 默认启用依赖回溯(dependency resolver),而离线 wheel 目录里版本不全时,它没法像在线模式那样动态选版本。解决方法是强制指定版本并关闭智能解析:pip install --no-deps --find-links ./wheels --no-index requests==2.31.0,再逐个装依赖。
更稳妥的做法:
立即学习“Python免费学习笔记(深入)”;
- 用
pipreqs生成精确的requirements.txt,避免模糊版本号(如requests>=2.20) - 在有网机器上跑
pip install -r requirements.txt --dry-run预演,确认所有依赖都能解析出具体 wheel - 对含 C 扩展的包(
psycopg2、cryptography),优先找 pre-compiled wheel,别指望离线编译——没gcc、openssl-dev等头文件根本过不了
requirements.txt,在 Windows、macOS、不同 Linux 发行版甚至不同 Python 小版本之间,wheel 文件可能完全不通用。


















