【Python】ubuntu python3.9编译安装,及多个Python版本并存的使用方法
- 1. 安装依赖
- 2. 编译与安装
- 2.1 依赖与源获取
- 2.2 配置
- 2.3 编译
- 2.4 安装
- 2.5 建立软连接 链接动态库
- 3. 多版本兼容
1. 安装依赖
更新系统软件
在正式开始之前,建议首先检查系统软件是否均为最新,并更新到最新版本。
打开一个终端,输入以下命令:
# 刷新软件包目录
sudo apt update
# 列出当前可用的更新
sudo apt list --upgradable
# 如上一步提示有可以更新的项目,则执行更新
sudo apt upgrade
安装 GCC 编译器
打开一个终端,使用 apt 安装 GCC 编译器:
安装 GCC 编译器
打开一个终端,使用 apt 安装 GCC 编译器:
可能需要的其他依赖:
# 刷新软件包目录
sudo apt update
# 安装依赖
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libbz2-dev liblzma-dev sqlite3 libsqlite3-dev tk-dev uuid-dev libgdbm-compat-dev
注意,Python 的部分功能依赖于对应的库(如 OpenSSL、SQLite3、LZMA 等),如果在编译时未能找到这些库,仍然可能完成编译。此时的 Python 解释器看似可以工作,但在需要使用特定功能时就会出问题。例如 OpenSSL 出现问题会导致无法正常使用 pip。故建议按本节提示安装所有可选依赖项,并在下一节编译时仔细检查有无报错信息。
2. 编译与安装
2.1 依赖与源获取
下载源代码地址
最好直接安装3.9以上,都是教训
下载 Python 3.10.12
sudo wget https://www.python.org/ftp/python/3.10.12/Python-3.10.12.tar.xz
下载其他版本只需替换版本号数字
解压并进入该目录,后续的所有命令均在该目录中执行:
# 解压
tar -xf Python-3.10.12.tar.xz
# 进入该目录
cd Python-3.10.12/
2.2 配置
# 检查依赖与配置编译
sudo ./configure --enable-optimizations --with-lto --enable-shared
此处使用了三个可选配置项,含义如下:
–enable-optimizations:用 PROFILE_TASK 启用以配置文件主导的优化(PGO)
–with-lto:在编译过程中启用链接时间优化(LTO)
–enable-shared:启用共享 Python 库 libpython 的编译
更多可用配置项的信息,请参阅 Python 官方文档。
2.3 编译
# 编译,-j 后面的数字为参与编译的CPU核心数,根据个人机器配置调整
sudo make -j 6
编译结束后,注意仔细查看一下输出,检查可能存在的错误:
# 一种可能出现的问题:
$ sudo make
# ......省略部分输出......
Python build finished successfully!
The necessary bits to build these optional modules were not found:
_dbm _tkinter _uuid
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
2.4 安装
# 安装二进制文件
sudo make altinstall
2.5 建立软连接 链接动态库
如果使用 sudo make install 直接安装就不需要,使用 # 安装二进制文件
sudo make altinstall 是需要的
● 原因:刚完成python3.10版本的安装后,默认路径在 /usr/local/bin 。并不方便查找
● 目的:建立python3.10专门的软连接,指定 python 指令找到刚安装的 python3.10。
- 删除原来的软连接
sudo rm -f /usr/bin/python3
删除后变成这样
- 在/usr/bin/目录创建软连接python,定向/usr/local/bin/python3.10
//因为是在bin底下生成的一个文件,所以需要用到超级用户权限sudo
sudo ln -s /usr/local/bin/python3.10 /usr/bin/python3
3. 多版本兼容
[见blog python2与python3转换记录]