当前位置:首页 > Liunx

CentOS7.9 源码编译安装 Python3.11 一键脚本(1核2G可用)

邓鹏2周前 (10-16)Liunx129


适用系统:CentOS Linux release 7.9.2009 (Core)

特点:不破坏系统自带Python,使用 altinstall 安装,不会损坏yum工具;适配1~2G内存云服务器,关闭编译优化防止编译卡死。

重要提醒:CentOS7 默认源无法直接yum安装Python3.11,只能源码编译。不要执行 make install,必须使用 make altinstall!

一、前置依赖(已经安装可跳过)

yum install -y gcc gcc-c++ make zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel

二、Python3.11 完整一键安装脚本

# 1.清理旧损坏源码包
cd /usr/src
rm -rf Python-3.11.10*

# 2.下载阿里云镜像源码包
wget https://mirrors.aliyun.com/python-release/source/Python-3.11.10.tgz

# 3.解压源码
tar -zxvf Python-3.11.10.tgz
cd Python-3.11.10

# 4.编译配置(移除优化项,适配小内存服务器)
./configure --prefix=/usr/local/python311

# 5.编译与安装(altinstall,保护系统python)
make -j$(nproc)
make altinstall

# 6.创建全局软链接
ln -sf /usr/local/python311/bin/python3.11 /usr/bin/python3.11
ln -sf /usr/local/python311/bin/pip3.11 /usr/bin/pip3.11

# 7.输出版本验证
python3.11 --version
pip3.11 --version

三、验证SSL模块(关键检查项)

CentOS7自带OpenSSL版本较低,编译完成后务必检查ssl模块:

python3.11 -c "import ssl; print(ssl.OPENSSL_VERSION)"

✅ 正常:输出OpenSSL版本号
❌ 报错No module named ssl:pip无法使用HTTPS源,临时安装包使用下面http豆瓣源

pip3.11 install flask flask-sqlalchemy -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

四、创建项目虚拟环境(Flask CRM项目推荐)

mkdir -p /opt/crm
cd /opt/crm
python3.11 -m venv venv
source venv/bin/activate

激活成功后命令行前缀出现 (venv),所有项目依赖隔离在此虚拟环境。
退出虚拟环境命令:deactivate

五、使用Screen防止SSH断开中断编译

编译前执行screen,就算SSH掉线,编译任务后台继续运行:

screen -S py311
# 粘贴上面整套安装命令
# 断线重连恢复:screen -r py311

六、常见问题

  • 解压报错:压缩包下载不完整,执行rm清理后重新wget下载

  • 编译卡死:服务器内存不足,确认configure不带--enable-optimizations

  • command not found:软链接未创建成功,手动执行ln两条软链接命令

  • 禁止make install:会覆盖系统python,yum直接失效

扫描二维码推送至手机访问

版权声明:本文由 PowerShell 中文社区发布,如需转载请注明出处。

联系咨询:邮箱 dengpeng@powershell.com.cn | 电话/微信 176-6506-6665 

本文链接:https://www.powershell.com.cn/post/202.html

“CentOS7.9 源码编译安装 Python3.11 一键脚本(1核2G可用)” 的相关文章

Shell脚本介绍

Shell脚本介绍

今日目标==熟练掌握shell变量的定义和获取====能够进行shell简单的四则运算==磁盘相关命令回顾:磁盘相关命令说明fdisk分msdos分区与要看系统硬盘与分区情况lsblk查看块设备与其挂载情况df -h查看已经挂载的文件系统情况mount也是查看挂载的情况,还能看到挂载的参数(ro或r…

shell条件判断-02

shell条件判断-02

1 判断一个条件是为真(true)还是为假(false)格式1: ==test== 条件表达式格式2: [ 条件表达式 ]格式3: [[ 条件表达式 ]] 支持正则 =~2 与文件相关的常用参数-e    判断文件是否存在-f    判断是否为普通文件-d &…

shell函数与case语句-04

shell函数与case语句-04

case语句说明case语句为多选择语句(==其实就是类似if多分支结构==), 主要用于centos6的服务脚本里用于判断服务是start还是stop还是status等。说明: python里没有case语句,python里用if多分支来实现. 但case语句也需要看懂结构, 不仅是shell里用…

shell三剑客之sed-06

shell三剑客之sed-06

学习sed的关键是要搞清楚,它是一个流==编辑器==,编辑器常见的功能有:删除行打印行增加行替换(修改)sed参数-e 进行多项编辑,即对输入行应用多条sed命令时使用-n 取消默认的输出-r 使用扩展正则表达式-i inplace,原地编辑(修改源文件)sed操作d 删除行p 打印行a 后面加行i…

shell文本编辑模式及信息输出说明-08

shell文本编辑模式及信息输出说明-08

关于Linux文本编辑和信息输出介绍如下1 直接命令行多行字符输入到一个文本内2 关于重定向符号的使用方法介绍3 关于vi编辑模式下快捷命令及方法#通过EOF写入多行内容到文本,如果是>>表示追加,如果文件不存在,则创建写入,EOF只是一个定界符,其他两个相同的定界符也可以。 cat&…

CentOS运维全套常用命令详解

CentOS运维全套常用命令详解

CentOS是企业服务器主流Linux发行版,本文整理运维高频操作命令,覆盖系统信息、磁盘、网络、进程、软件包、权限、日志、防火墙等场景,每条附带参数说明,可直接复制用于服务器操作。一、系统信息查看命令1、系统版本与内核# 查看系统发行版本 cat /etc/centos-re…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。