前缀、文档修改记录
20240513 初始化编辑此文章,完稿 20250514 编译测试通过
章节1、需求描述
时至今日2024-05-13,python3的稳定版本已经是3.12了,在部分环境上,可能有旧的版本,为了一个系统内兼容多个版本,可能需要进行venv方式进行多版本协同。
这里写编译安装到最新的版本python3的3.12版本
章节2、Ubuntu系统下可apt源方式安装python3的3.12版本
- Python 官网:https://www.python.org/
- Python 源码包下载地址:https://www.python.org/downloads/source/
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