在Ubuntu 16.04(18.04) 系统上编译安装Python 3.8 方法

在Ubuntu 16.04(18.04) 系统上编译安装Python 3.8 方法

安装编译依赖

sudo apt install -y wget build-essential libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev
sudo apt update 

下载解压源码

sudo wget https://www.python.org/ftp/python/3.8.0/Python-3.8.6.tgz
tar xf Python-3.8.6.tgz

设置编译参数

cd Python-3.8.6/
./configure --prefix=/usr/local/python3 --enable-optimizations

编译及安装

sudo make && sudo make install

如有需要 make 编译完后可以将整个源码包打包

打包命令

tar cf py38make.tar Python-3.8.6 && gzip py38make.tar

到相同配置的机器上安装,适用于云端多台相同的服务器

sudo rm -rf Python-3.x.x  # 删除旧的源码文件夹
sudo rm -rf /usr/local/python3/  # 删除旧二进制文件

解压命令

tar xf py38make.tar.gz
cd Python-3.8.6
sudo make && sudo make install  # 安装3.8 版本

软连接pip3 和python3.8,-f 强制创建有则覆盖

sudo ln -sf /usr/local/python3/bin/python3.8 /usr/bin/python3.8
sudo ln -sf /usr/local/python3/bin/pip3 /usr/bin/pip3

测试pip 安装软件

pip list

可能出现报错

File "/usr/local/lib/python3.8/subprocess.py", line 395, in check_output
    **kwargs).stdout
  File "/usr/local/lib/python3.8/subprocess.py", line 487, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '('lsb_release', '-a')' returned non-zero exit status 1.

注意:是/usr/local/lib/python3.8/路径下缺少lsb_release.py文件(具体报错路径查看自己电脑报错路径),解决方法

sudo find / -name 'lsb_release.py'

在这里插入图片描述

# 注意查看自己报错路径再复制
sudo cp /usr/lib/python3/dist-packages/lsb_release.py /usr/local/lib/python3.8/
pip list

在这里插入图片描述

升级pip

sudo pip install --upgrade pip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值