Linux操作系统安装Python3并和python2共存
PS: Centos自带python2,由于执行yum需要python2,所以即使安装了python3也不能删除python2
1.安装依赖包
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
2.下载自己需要的python版本
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
3 新建一个文件夹存放python3
mkdir /usr/local/python3
4 编译安装python3
mv Python-3.6.2.tar.xz /usr/local/python3
tar -xvf Python-3.6.2.tar.xz
cd Python-3.6.2
. /configure --prefix=/usr/local/python3
make && make install
5 创建软连接
mv /usr/bin/python python.backup //把原先的默认python命令注释掉,不然下面就不能修改成python3版本,你创建软连接时她会说你文件已存在不能创建新的软连接。
ln -s /usr/local/python3/bin/python3 /usr/bin/python3 //使输入python3直接显示python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 //使输入pip3直接显示pip3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip //使输入pip直接显示pip
ln -s /usr/local/python3/bin/python3 /usr/bin/python //使输入python直接显示python3
6 修改yum配置文件,python2与python3共存
vi /usr/bin/yum
vi /usr/libexec/urlgrabber-ext-down
yum需要把Python2改到配置文件里,因为现在默认的是python3,这样可以使Python3共存,并保持yum命令可用
具体是把#! /usr/bin/python改成#!/usr/bin/python2
7.最后查看版本看是否改成了3.x
pip -V
python -V
下面是我自己写的脚本,本人是个新手,希望各位朋友多多指点。
#! /bin/bash
echo 正在检测网络状态
ping -c 3 www.baidu.com &> /dev/null
if [ $? -eq 0 ]
then
echo "正跟您网络安装"
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
while read -p "请输入Python安装版本号:" banben
do
find / -name Python-"$banben".tar.xz &>/dev/null
if [ $? -eq 0 ]
then
echo 安装文件李有该软件包,准备安装。
break
else
echo 正在下载
wget https://www.python.org/ftp/python/$banben/Python-"$banben".tar.xz &> /dev/null
if [ $? -eq 0 ]
then
echo "下载完成,开始安装"
break
else
echo "您输入的版本有误,请重新输入" && continue
fi
fi
done
mkdir /usr/local/python3
cp -rp Python-"$banben".* /usr/local/python3
cd /usr/local/python3
tar -xvf Python-"$banben".*
cd Python-"$banben"
./configure --prefix=/usr/local/python3
make && make install
echo "创建软连接"
mv /usr/bin/python python.backup
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
ln -s /usr/local/python3/bin/python3 /usr/bin/python
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
sed -i "1s@.*@#! /usr/bin/python2@" /usr/bin/yum
sed -i "1s@.*@#! /usr/bin/python2@" /usr/libexec/urlgrabber-ext-down
else
echo "您的网络不通,现在跟您本地安装"
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
mkdir /usr/local/python3
cp /root/python-anzhuang/Python3.6.2.* /usr/local/python3
cd /usr/local/python3
tar -xvf Python*
cd /usr/local/python3/Python*
./configure --prefix=/usr/local/python3
make && make install
echo "创建软连接"
mv /usr/bin/python python.backup
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
ln -s /usr/local/python3/bin/python3 /usr/bin/python
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
sed -i "1s@.*@#! /usr/bin/python2@" /usr/bin/yum
sed -i "1s@.*@#! /usr/bin/python2@" /usr/libexec/urlgrabber-ext-down
fi
a=`python -V | awk '{print $2}'`
echo $a
if [[ $a =~ ^[3-9].[0-9].[0-9] ]]
then
echo "success"
else
echo "flase"
fi