install_python.sh
#!/bin/bash
function is_exists_arg() {
# check version number argumnet
local version=$1
if [ -z $version ]
then
echo "缺少版本号参数!"
exit 1
fi
}
function is_exists_python() {
# split version number such as 3.8.10 => 3 8 10
local version=$1
local v=(${version//./ })
if [ -e $python_path ] && [ -e $pip_path ] && [ -e $python_bin_path ] && [ -e $pip_bin_path ]
then
return 0
else
return 1
fi
}
version=$1
is_exists_arg $version
v=(${version//./ })
install_path=/usr/local/python-$version
python_path=$install_path/bin/python${v[0]}.${v[1]}
python_bin_path=/usr/bin/python${v[0]}.${v[1]}.${v[2]}
pip_path=$install_path/bin/pip${v[0]}.${v[1]}
pip_bin_path=/usr/bin/pip${v[0]}.${v[1]}.${v[2]}
is_exists_python $version
if [ $? == 0 ]
then
echo -e "\e[1;31mPython$version 已存在!\e[m"
echo "安装位置:$python_path"
echo " $pip_path"
echo "软连接: $python_bin_path"
echo " $pip_bin_path"
exit 1
fi
echo -e "Python版本号:\e[1;33m$version\e[m"
# library
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel xz-devel libffi-devel
# download
rm -rf ./Python-*.tgz
wget https://www.python.org/ftp/python/$version/Python-$version.tgz
# uncompress
tar -zxvf Python-$version.tgz
# install
cd Python-$version
./configure --prefix=$install_path
make && make install
# soft links
ln -s $python_path $python_bin_path
ln -s $pip_path $pip_bin_path
# clean
rm -rf ./Python-$version.tgz ./Python-$version
# check
is_exists_python $version
if [ $? == 0 ]
then
echo -e "\e[1;mPython $version 安装成功!\e[m"
echo "安装位置:$python_path"
echo " $pip_path"
echo "软连接: $python_bin_path"
echo " $pip_bin_path"
else
echo -e "\e[1;31mPython $version 安装失败!\e[m"
fi
执行脚本
bash install_python.sh 3.8.10
查看Python版本
python3.8.0 -V
查看pip版本
pip3.8.0 -V