Linux 下升级 Python 3.7 → 3.9(离线)并内网安装本地python-packages

假设已经把 python-3.9.x.tar.xz 拷贝到 /tmp

sql 复制代码
wget https://www.python.org/ftp/python/3.9.20/Python-3.9.20.tgz
cd /tmp
tar -xf Python-3.9.x.tar.xz
cd Python-3.9.x

配置安装路径,避免覆盖系统自带 python3

sql 复制代码
./configure --prefix=/opt/python3.9 --enable-optimizations
make -j$(nproc)
make install

添加软连接(可选)

sql 复制代码
ln -s /opt/python3.9/bin/python3.9 /usr/local/bin/python3.9
ln -s /opt/python3.9/bin/pip3.9 /usr/local/bin/pip3.9

查看版本

sql 复制代码
python3.9 --version
pip3.9 --version

1️⃣ 在外网/本地机器导出已有包

假设你本地的 Python 3.9 是你常用环境:

激活你的本地 Python 3.9 环境

sql 复制代码
python3.9 -m pip freeze > requirements.txt

2️⃣ 下载离线 .whl 包(本地/外网)

使用 pip download 下载所有依赖到一个目录:

sql 复制代码
mkdir -p /tmp/packages
pip download -r requirements.txt -d /tmp/packages

这会把 requirements.txt 中所有包及依赖下载到 /tmp/packages

注意选择合适的平台的 .whl(Linux/Windows/macOS)

💡 小提示:如果内网机器平台和外网机器不同,需要确保下载的 wheel 平台一致(比如 Linux x86_64)。

3️⃣ 拷贝到内网服务器

假设内网服务器路径 /opt/python3.9-packages

sql 复制代码
scp -r /tmp/packages 内网服务器:/opt/python3.9-packages
scp requirements.txt 内网服务器:/opt/python3.9-packages

4️⃣ 在内网 Python 3.9 下离线安装

使用内网 Python 3.9

sql 复制代码
cd /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️⃣ 验证

sql 复制代码
python3.9 -m pip list

会显示安装的包及版本

系统默认 Python 3.7 不受影响

⚡ 小技巧

多个包直接下载:

sql 复制代码
pip download numpy pandas requests -d /tmp/packages

特定平台(Linux x86_64):

sql 复制代码
pip download --platform manylinux2014_x86_64 --python-version 39 --only-binary=:all: -r requirements.txt -d /tmp/packages

升级 pip(在内网先准备好离线包):

sql 复制代码
pip download pip -d /tmp/packages
python3.9 -m pip install --no-index --find-links=/tmp/packages pip
相关推荐
belldeep1 小时前
python:genesis-world, Genesis-Embodied-AI
人工智能·python·ai·genesis
benchmark_cc2 小时前
A 股、港股、美股如何建立统一的标的主数据格式?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
维克兜率天3 小时前
【维克】趋势型CTA:期货市场的“追涨杀跌“
人工智能·python
取名真是3 小时前
Python 算法知识点从基础到进阶
开发语言·python·算法
vibecode3 小时前
网站服务器失去响应怎么解决?我把连接超时和读超时这两段计时拆开跑了一遍
运维·服务器
梦想不只是梦与想3 小时前
PyTorch、CPU、GPU、CUDA
人工智能·pytorch·python·深度学习·机器学习·cuda
数字融合3 小时前
透明化视频孪生危化安全管控解决方案
人工智能·python·安全
工业一体机老司机4 小时前
Docker部署工控机采集服务 Compose编排与开机自启
运维·docker·容器
迪康Defender5 小时前
终端供应链安全:应用白名单与软件正版化检测落地|终端安全治理实践
运维·服务器·网络·安全·web安全·自动化·运维开发
别问!问就是全会5 小时前
Jupyter Notebook 安装包下载|单元格分块运行,图表直接内嵌
ide·python·其他·jupyter