【Ubuntu】安装python环境(一个脚本编译安装任意版本)

前言

最近弄了个新装的Ubuntu系统,尽管里面有自带的python3环境,但是没有我想要用的python版本环境,看到网上的各种编译安装,都是各种繁琐的步骤,其实也不利于一些计算机基础比较差的同学安装python环境

于是就写了一个通用性的脚本,也方便以后自己用。

环境:Ubuntu18.04

工具:vim

编写脚本

先安装vim文本编辑工具,新建一个install_python.sh的脚本

sudo apt install vim
vi install_python.sh

编辑install_python.sh文件,然后填入如下内容。下面的python版本号可以自定义的。具体python

有哪些版本号,可以查看下面连接

https://www.python.org/ftp/python/

这里我安装的是python3.8.10的版本。

#!/bin/bash
# by baiyu 2021 攻城狮白玉
#-----可变参数-start-----
# 要下载的python版本
# python的大版本号
py_version=3.8
# python的具体版本号
version=$py_version.10
# 要安装的路径
install_path=/usr/local/src/python38
#-----可变参数-end-----

echo -e '即将安装python$version'
echo -e '安装路径为$install_path'

# 安装依赖以及升级索引
sudo apt install -y build-essential zlib1g-dev libbz2-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget
sudo apt update
sudo apt upgrade -y

# 创建安装目录文件夹
sudo mkdir -p $install_path

# 下载python
echo -e '正在下载'
# 使用官方网址下载--速度可能比较慢
# wget https://www.python.org/ftp/python/$version/Python-$version.tgz
# 使用国内华为镜像源下载python
wget https://mirrors.huaweicloud.com/python/$version/Python-$version.tgz
echo -e "正在解压"
# 静默解压
tar -xzf Python-$version.tgz
# 删除压缩包
echo -e "解压完成,移除压缩包"
rm -rf Python-$version.tgz

echo -e "正在安装"
cd Python-$version
./configure --prefix=$install_path  # 配置安装位置
sudo make
sudo make install

echo -e "配置软连接"
rm -rf /usr/bin/python$py_version /usr/bin/pip$py_version
sudo ln -s $install_path/bin/python$py_version /usr/bin/python$py_version
sudo ln -s $install_path/bin/pip$py_version /usr/bin/pip$py_version

cd ..
sudo rm -rf Python-$version
echo -e "完成安装Python-$version"

你们可以根据需要修改一下脚本对应的大版本号和具体版本号。 比如你们要安装python3.9.1版本的话,就修改版本号如下:

py_version=3.9  

version=$py_version.1

使用chmod命令,添加可执行权限,并执行脚本

sudo chmod +x install_python.sh
./install_python.sh

静待安装之后,就可以在命令行键入python3.8直接进入python环境了

总结

本脚本是编译安装python环境的,不会与原有的python环境冲突。安装完成后,在命令行输入安装的大版本号即可进入相应的python环境。话说docker他不香吗?哈哈哈哈

写在后面

如果觉得有用的话,麻烦一键三连支持一下攻城狮白玉并把本文分享给更多的小伙伴。你的简单支持,我的无限创作动力

你可能感兴趣的:(Ubuntu,Linux运维,python,python,Linux,ubuntu)