ubuntu从源码编译安装python

01.更新软件包列表并且安装编译 Python 所必要的软件包:

sudo apt update
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget

02. 下载相应版本的python源码,并解压在任意目录

https://www.python.org/downloads/

03. 切换到 Python 源码目录,并且执行configure脚本,他会执行一系列检测,并且确保所有依赖都在你的系统上准备好了:

cd Python-xxxx
./configure --enable-optimizations --enable-loadable-sqlite-extensions --with-openssl=/usr/local/openssl

其中:

--enable-optimizations:通过多个测试优化 python 二进制包。这会导致编译过程变慢。

--with-openssl=/usr/local/openssl:指定openssl的安装目录,注意确保openssl路径正确。如果openssl配置错误,使用python和pip时会出现“Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available)”错误。

在python源码目录内的“Modules/Setup”文件中搜索“_socket socketmodule.c”,打开以下注释(以python 3.10.4为例):

ubuntu从源码编译安装python_第1张图片

--enable-loadable-sqlite-extensions:打开sqlite可选项。如果打开了该选项,请确保在python源码目录内的“setup.py”文件中关于的sqlite配置正确。

在“setup.py”文件中查找字段“sqlite_inc_paths”,检查sqlite相关配置是否正确。

ubuntu从源码编译安装python_第2张图片

根据环境的不同,也许需要添加以下路径: 

/usr/local/sqlite3/include

/usr/local/sqlite3/include/sqlite3

 04.开始 Python 的编译处理:

make -j 8

想要缩短编译事件,修改-j来适配你的处理器数量。可以通过输入nproc来找到处理器的数量。

05. 当编译完成后,通过输入下面的命令安装 Python 二进制包

sudo make altinstall

不要使用标准的make install因为它会覆盖默认的系统 python 二进制包

参考:

如何在 Ubuntu 18.04上安装 Python 3.8 - 云+社区 - 腾讯云

解决Python3 No module named '_sqlite3'错误 - 简书

python3.7安装后ssl问题 - 云+社区 - 腾讯云

你可能感兴趣的:(python,python)