网站首页 > 技术文章 正文
在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 版本
常见问题解决
- 缺少依赖报错
根据编译错误提示,在联网机器下载对应依赖包(如 _ctypes 模块需要 libffi-devel)。 - 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)。
- 上一篇: 你可能不知道的实用 Python 功能
- 下一篇: 必知必会的15个Python知识点
猜你喜欢
- 2025-05-21 Python 之 logging 模块详解
- 2025-05-21 避坑!Python任意参数黑科技:一招搞定参数洪水!90%都不知道
- 2025-05-21 10个你没有充分利用的令人惊叹的 Python 特性
- 2025-05-21 Python常用文件操作库使用详解
- 2025-05-21 2025-05-16:字符至少出现 K 次的子字符串Ⅰ。用go语言,给定一个
- 2025-05-21 Python的装饰器还是不会?来看看这篇文章(建议收藏)
- 2025-05-21 必知必会的15个Python知识点
- 2025-05-21 你可能不知道的实用 Python 功能
- 05-25Python 3.14 t-string 要来了,它与 f-string 有何不同?
- 05-25Python基础元素语法总结
- 05-25Python中的变量是什么东西?
- 05-25新手常见的python报错及解决方案
- 05-2511-Python变量
- 05-2510个每个人都是需要知道Python问题
- 05-25Python编程:轻松掌握函数定义、类型及其参数传递方式
- 05-25Python基础语法
- 257℃Python短文,Python中的嵌套条件语句(六)
- 257℃python笔记:for循环嵌套。end=""的作用,图形打印
- 256℃PythonNet:实现Python与.Net代码相互调用!
- 251℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 251℃Python实现字符串小写转大写并写入文件
- 106℃原来2025是完美的平方年,一起探索六种平方的算吧
- 91℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 81℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)