文章目录
- 一、Python安装
- 方法一、从Deadsnakes PPA安装deb软件包
- 1、更新软件包列表并安装必备组件
- 2、将deadsnakes PPA添加到系统的来源列表中:
- 3、安装Python
- 4、验证
- 方法二、从源代码在Ubuntu上安装Python
- 1、更新软件包列表并安装构建Python所需的软件包:
- 2、使用wget从Python下载页面下载所需版本的源代码
- 3、解压
- 4、切换到Python-3.8.5源目录,执行configure脚本,检查以确保系统上的所有依赖项都存在
- 5、启动Python 3.8构建过程:
- 6、构建过程完成后,输入以下命令安装Python二进制文件:
- 7、验证:
- 二、选择默认python
- 1、先来看一下安装了那些版本的python
- 2、看一下不同版本python对应的路径
- 3、使用update-alternatives --install建立链接
一、Python安装
方法一、从Deadsnakes PPA安装deb软件包
适用于Ubuntu 16.04和任何基于Ubuntu的发行版,包括Kubuntu,Linux Mint和Elementary OS
1、更新软件包列表并安装必备组件
sudo apt update
sudo apt install software-properties-common
2、将deadsnakes PPA添加到系统的来源列表中:
sudo add-apt-repository ppa:deadsnakes/ppa
出现提示时,按Enter继续:
3、安装Python
【这里以安装python3.8为例】
sudo apt install python3.8
4、验证
python3.8 -V
方法二、从源代码在Ubuntu上安装Python
1、更新软件包列表并安装构建Python所需的软件包:
sudo apt update
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget
2、使用wget从Python下载页面下载所需版本的源代码
【这里以python3.8.5为例】
wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz
3、解压
tar -xf Python-3.8.0.tgz
4、切换到Python-3.8.5源目录,执行configure脚本,检查以确保系统上的所有依赖项都存在
cd Python-3.8.5
./configure --enable-optimizations
–enable-optimizations选项通过运行多个测试来优化Python二进制文件。 这会使构建过程变慢。
5、启动Python 3.8构建过程:
make -j 8
为了加快构建时间,需要修改-j以使其对应于处理器中的内核数,可以通过键入nproc查找编号。
6、构建过程完成后,输入以下命令安装Python二进制文件:
sudo make altinstall
注意:不要使用标准的make install,它会覆盖默认的系统python3二进制文件。
7、验证:
python3.8 --version
二、选择默认python
1、先来看一下安装了那些版本的python
python --version #查看python安装版本
python2 --version #查看python2安装版本
python3 --version #查看python3安装版本
如下图:
python默认指向Python3.6.9(ubuntu 18.0.4自带python3.6.9)
没有安装python2的版本
python3默认指向Python3.8.5(这是之前就已经安装并设置好的)
2、看一下不同版本python对应的路径
which python
which python3
3、使用update-alternatives --install建立链接
(这里我想要的是python默认指向python3.8.5,python3指向python3.6.9)
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
注意:update-alternatives: --install 需要 <链接> <名称> <路径> <优先级>
数字代表了优先级,数字越大优先级越高