假设已经把 python-3.9.x.tar.xz 拷贝到 /tmpwget https://www.python.org/ftp/python/3.9.20/Python-3.9.20.tgzcd/tmp tar-xf Python-3.9.x.tar.xz cd Python-3.9.x配置安装路径避免覆盖系统自带 python3./configure--prefix/opt/python3.9 --enable-optimizationsmake-j$(nproc)make install添加软连接可选ln-s/opt/python3.9/bin/python3.9/usr/local/bin/python3.9ln-s/opt/python3.9/bin/pip3.9/usr/local/bin/pip3.9查看版本python3.9--versionpip3.9--version1️⃣ 在外网/本地机器导出已有包假设你本地的 Python 3.9 是你常用环境激活你的本地 Python 3.9 环境python3.9-m pip freezerequirements.txt2️⃣ 下载离线 .whl 包本地/外网使用 pip download 下载所有依赖到一个目录mkdir-p/tmp/packages pip download-r requirements.txt-d/tmp/packages这会把 requirements.txt 中所有包及依赖下载到 /tmp/packages注意选择合适的平台的 .whlLinux/Windows/macOS 小提示如果内网机器平台和外网机器不同需要确保下载的 wheel 平台一致比如 Linux x86_64。3️⃣ 拷贝到内网服务器假设内网服务器路径 /opt/python3.9-packagesscp-r/tmp/packages 内网服务器:/opt/python3.9-packages scp requirements.txt 内网服务器:/opt/python3.9-packages4️⃣ 在内网 Python 3.9 下离线安装使用内网 Python 3.9cd/opt/python3.9-packages python3.9-m pip install--no-index --find-links. -r requirements.txt解释–no-index不去 PyPI 网络安装–find-links.从当前目录查找 .whl 文件-r requirements.txt安装指定的包及版本5️⃣ 验证python3.9-m pip list会显示安装的包及版本系统默认 Python 3.7 不受影响⚡ 小技巧多个包直接下载pip download numpy pandas requests-d/tmp/packages特定平台Linux x86_64pip download--platform manylinux2014_x86_64 --python-version 39 --only-binary:all: -r requirements.txt -d /tmp/packages升级 pip在内网先准备好离线包pip download pip-d/tmp/packages python3.9-m pip install--no-index --find-links/tmp/packages pip