Linux离线安装Python3教程

在Linux离线环境中安装Python3需要提前准备好安装包及其依赖,以下是详细步骤:


1. 准备Python源码包

在联网机器上操作:

bash

# 下载Python源码包(以Python 3.7.9为例)

wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz


# 将文件拷贝到U盘或通过其他方式传输到离线机器


2. 传输文件到离线机器

  • 使用U盘、移动硬盘或内网SCP传输:

bash

scp Python-3.7.9.tgz user@offline-machine:/path/to/destination


3. 安装依赖项

在离线机器上操作:

对于CentOS/RedHat:

提前在有网络的相同系统机器上下载依赖:

bash

# 获取开发工具链和依赖包

yum install -y gcc make zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel


# 下载依赖的rpm包(可选,用于离线安装)

mkdir dependencies && cd dependencies

yumdownloader gcc make zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel

dependencies 文件夹拷贝到离线机器,并安装:

bash

rpm -Uvh *.rpm

对于Ubuntu/Debian:

提前下载依赖:

bash

apt-get download build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev

.deb 文件拷贝到离线机器,安装:

bash

dpkg -i *.deb


4. 编译安装Python

在离线机器上操作:

bash

# 解压源码包

tar -xzvf Python-3.7.9.tgz

cd Python-3.7.9


# 配置安装路径(默认:/usr/local)

./configure --prefix=/usr/local/python3 --enable-optimizations


# 编译并安装

make -j4 # 根据CPU核心数调整(如4核)

sudo make install


# 创建软链接(可选)

sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3

sudo ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3


5. 配置环境变量

bash

# 编辑用户环境变量

echo 'export PATH=/usr/local/python3/bin:$PATH' >> ~/.bashrc

source ~/.bashrc


6. 验证安装

bash

python3 -V # 输出 Python 3.7.9

pip3 -V # 输出 pip 版本


常见问题解决

  1. 缺少依赖报错
    根据编译错误提示,在联网机器下载对应依赖包(如 _ctypes 模块需要 libffi-devel)。
  2. pip安装问题
    若需离线安装pip,单独下载 get-pip.py 并传输到离线机器:

bash

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

python3 get-pip.py


总结

  • 核心步骤:下载源码 → 传输 → 安装依赖 → 编译 → 配置环境
  • 关键点:确保所有依赖包提前安装,否则编译会失败。
  • 建议选择稳定的Python版本(如3.6.x/3.7.x/3.8.x)。

相关文章

Elasticsearch在Java项目的搜索实践:从零开始构建高效搜索系统

Elasticsearch在Java项目中的搜索实践:从零开始构建高效搜索系统在现代的Java项目中,数据量激增,传统的数据库查询方式已经无法满足快速检索的需求。这时,Elasticsearch (E...

Docker容器化Java应用的完整流程:从零到部署

Docker容器化Java应用的完整流程:从零到部署开篇故事:小明的Java项目烦恼小明是一个热爱Java编程的开发者,最近他完成了一个功能丰富的电商后端服务。然而,当他想把项目交给团队运维人员进行部...

手把手教你!如何在 Linux 服务器中搭建 Sentinel 环境?

你在 Linux 服务器上搭建 Sentinel 环境时,是不是也遇到过各种报错,要么是启动失败,要么是配置后无法正常访问控制台?看着同事顺利搭建好,自己却一头雾水,别提多着急了!其实,很多互联网大厂...

Jenkins持续集成在Java项目中的妙用

Jenkins持续集成在Java项目中的妙用什么是Jenkins?Jenkins是一个开源的自动化服务器,它可以帮助开发者实现软件开发的持续集成和持续交付。听起来是不是很厉害?实际上,Jenkins就...

Java开发者的代码规范与习惯养成

Java开发者的代码规范与习惯养成作为一名Java开发者,养成良好的代码规范和习惯是迈向卓越的关键一步。代码规范不仅仅是为了让代码看起来整齐美观,更重要的是为了提高代码的可读性、可维护性和团队协作效率...

第一篇:如何使用 uv 创建 Python 虚拟环境

想象一下,你有一个使用 Python 3.10 的后端应用程序,系统全局安装了 a2.1、b2.2 和 c2.3 这些包。一切运行正常,直到你开始一个新项目,它也使用 Python 3.10,但需要...