标签归档:编译安装3.12.3

编译安装python3 2024-05-13

前缀、文档修改记录

20240513 初始化编辑此文章,完稿
20250514 编译测试通过

章节1、需求描述

时至今日2024-05-13,python3的稳定版本已经是3.12了,在部分环境上,可能有旧的版本,为了一个系统内兼容多个版本,可能需要进行venv方式进行多版本协同。

这里写编译安装到最新的版本python3的3.12版本

章节2、Ubuntu系统下可apt源方式安装python3的3.12版本

root@server:~# add-apt-repository ppa:deadsnakes/ppa -y
root@server:~# apt update
root@server:~# apt install python3.12 -y
root@server:~# python3.12 --version

章节3、Debian11&12环境下编译安装python3的3.12.3版本

// 2024-05-14 编译测试通过

root@server:~# apt update
root@server:~# apt install gcc make
root@server:~# apt install build-essential libbz2-dev libffi-dev liblzma-dev libncurses5-dev libreadline-dev libsqlite3-dev libssl-dev tk-dev zlib1g-dev
root@server:~# apt install wget
root@server:~# wget https://www.python.org/ftp/python/3.12.3/Python-3.12.3.tar.xz
root@server:~# tar xvf Python-3.12.3.tar.xz
root@server:~# cd Python-3.12.3
root@server:~# mkdir -p /usr/local/python3.12.3
root@server:~# ./configure --prefix=/usr/local/python3.12.3 --enable-optimizations --with-lto --enable-shared --with-dbmliborder=gdbm --without-ensurepip

//参数释义,配置选项的含义:
--enable-optimizations --with-lto
性能选项,推荐用此选项配置python3,启用以配置文件主导的优化(PGO)

--enable-shared
该选项防止安装静态库。

--without-ensurepip
该选项禁止构建 Python 软件包安装器,它在当前阶段没有必要。

--with-dbmliborder
覆盖 dbm 模块的 db 后端检查顺序。合法值是用冒号(:)分隔的字符串,包含后端名称。

root@server:~# make -j4
root@server:~# make install
root@server:~# echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/python3.12.3/lib"  >> /root/.bashrc  //增加到环境变量
root@server:~# source .bashrc
root@server:~# /usr/local/python3.12.3/bin/python3.12            // 检查版本
root@server:~# mv  /usr/bin/python3   /usr/bin/bak.python3.old
root@server:~# ln -s /usr/local/python3.12.3/bin/python3.12  /usr/bin/python3
root@server:~# ln -s /usr/local/python3.12.3/bin/python3.12  /usr/bin/python

pip软件的安装,最好搭配venv来,这样可以做到隔离,版本管理。

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨