Featured image of post Ubuntu下更换升级Python环境

Ubuntu下更换升级Python环境

在Ubuntu系统中安装Python可使用PPA源安装与源码编译安装两种方式,本文以Ubuntu20演示PPA源安装的方式、以Ubuntu16演示源码编译安装的方式

Ubuntu20中更换Python环境(PPA)

版本检查

不同于 Ubuntu 18.04 LTS 等旧Ubuntu版本默认自带的Python是Python2,Ubuntu 20.04.4 LTS不默认使用 Python2,使用下面的命令来检查 Ubuntu 20.04.4 LTS 默认使用的Python版本

1
python3 --version

PPA

Ubuntu自带的软件应用可以安装海量软件,包括发行者支持的软件、社区支持的软件、专有驱动和版权软件,然而有些软件通过这些渠道仍然无法找到,这时可以到 PPA 软件源中查找、安装相关软件PPA是Personal Package Archives首字母简写,即:个人软件包文档,只有Ubuntu用户可以用,而所有的PPA都是存储在launchpad.net网站上。Launchpad是Canonical公司所架设的网站,是一个提供维护、支援或连络Ubuntu开发者的软件协作平台。 Launchpad 网站提供的一项源服务,允许个人用户上传软件源代码,通过 Launchpad 进行编译并发布为二进制软件包,作为apt/新立得Synaptic源供其他用户下载和更新。PPA也被用来对一些打算进入Ubuntu官方仓库的软件,或者某些软件的新版本进行测试

因此,需添加Python源的PPA,同时在输出的信息中检查列出的支持版本是否包含Ubuntu-Python版本对应关系,本文将在Ubuntu 20.04上安装Python3.7

1
sudo add-apt-repository ppa:deadsnakes/ppa

根据输出提示,按ENTER键继续完成PPA的添加

更新软件包列表及软件包

1
sudo apt-get update

安装Python3.7

1
sudo apt-get install python3.7

验证Python安装

安装Python3.7不会影响系统自带的Python,千万不能卸载。可以通过软链接Python至Python3.7,但可能会导致终端无法打开命令行的问题

1
2
python3 --version
python3.7 --version

因此不建议修改,可直接使用python3.7运行

安装PIP

通过以下命令完成PIP的安装

1
2
3
4
5
6
# 安装Curl工具
sudo apt-get install curl
# 下载get-pip.py
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
# 安装PIP 并与Python3.7环境绑定
sudo python3.7 get-pip.py -i https://pypi.douban.com/simple

若出现报错,则对应的补充安装软件包

1
sudo apt-get install python3.7-distutils

验证PIP的安装,同样需采用pip3.7命令

1
pip3.7 -V

Ubuntu16中更换Python环境(源码编译)

前期准备

检查Ubuntu当前已有Python版本

1
python3 --version

下载Python3.7源代码

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

或通过命令行工具下载

1
2
sudo apt-get install wget
wget https://www.python.org/ftp/python/3.7.16/Python-3.7.16.tgz

安装Python所有依赖文件:Python 的部分功能依赖于对应的库(如 OpenSSL、SQLite3、LZMA 等),如果在编译时未能找到这些库,仍然可能完成编译。此时的 Python 解释器看似可以工作,但在需要使用特定功能时就会出问题。例如 OpenSSL 出现问题会导致无法正常使用 pip。故建议按本节提示安装所有可选依赖项

1
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

编译安装

解压Python源码,并进入源码目录

编译安装的configure 命令可参考Python说明文档

https://docs.python.org/zh-cn/3/using/configure.html

开始执行编译安装

1
2
3
./configure --enable-optimizations --with-lto
make
sudo make install

若make过程的最后输出,可能会提示缺失依赖软件包,此时需要进行对应的补充安装

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 需要关注的部分开始
The necessary bits to build these optional modules were not found:
_bz2                  _curses               _curses_panel      
_dbm                  _gdbm                 _hashlib           
_lzma                 _sqlite3              _ssl               
_tkinter              _uuid                 readline           
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
# 需要关注的部分结束

The following modules found by detect_modules() in setup.py, have been
built by the Makefile instead, as configured by the Setup files:
_abc                  atexit                pwd         

验证Python安装

使用命令验证Python安装完成

1
2
python3 --version
python3.7 --version

安装PIP

与Ubuntu20中更换Python环境部分的安装PIP方式一致



使用 Hugo 构建
主题 StackJimmy 设计