您的位置:首页 > 编程语言 > Python开发

python2.7.13自动化安装脚本含pip安装配置阿里源yum问题解决

2017-05-18 00:08 706 查看
linux python 2.7.13 自动化安装脚本

包含python 2.7.13安装,pip安装,pip配置为阿里源,安装更新python后yum 问题:ImportError: No module named urlgrabber.grabber 的处理

#!/bin/bash
#
#
###############################################
4000
######

PATH=$PATH:$HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
export PATH

useroot()
{
check_user=`whoami`
if [ "$check_user" == "root" ]
then
echo "user is root"
else
echo "ERROR: user is ${check_user} ,not user root ,please use root"
exit 1
fi
}

list_info()
{
clear
echo

cat  << EOF
#######*#######*#######*#######*#######*#######*#######*#######*#######*#######*#######
#                               WELCOME  TO  USE                                      #
#   NOTE: This script is  suitable for CentOS 7 server Install python version 2.7.13  #
#   IF YOU HAVE PROBLEAMS WHERE USE , PLEASE CALL ME                                  #
#   AUTHOR: COMPREL                                                                   #
#######*#######*#######*#######*#######*#######*#######*#######*#######*#######*#######
---------------------------------------------------------------------------------------
Install python 2.7.13
---------------------------------------------------------------------------------------
EOF
}

pre_install()
{
yum install -y gcc zlib-devel bzip2-devel openssl-devel ncurses-devel  |tee /tmp/install_python2.7.13.log >/dev/null
sleep 1
CHK_GCC=`rpm -qa | grep -w -c gcc`

if [ ${CHK_GCC} -le 1 ];then
echo "ERR : yum package gcc no ok..."  |tee /tmp/install_python2.7.13.log
echo "NOTE : pls check network  yum  and etc.." |tee /tmp/install_python2.7.13.log
echo
exit 1
else
echo "message : yum gcc ok." |tee /tmp/install_python2.7.13.log
fi

wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz sleep 1
if [ -f Python-2.7.13.tgz ] ; then
echo
echo "message: get file Python-2.7.13.tgz complete.continue.."   |tee /tmp/install_python2.7.13.log
else
echo "ERR : not get file from https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz "  |tee /tmp/install_python2.7.13.log
exit 1
fi
}

install_python()
{
mkdir /usr/local/python2.7.13
echo "message: mkdir /usr/local/python2.7.13" |tee /tmp/install_python2.7.13.log

echo "message: tar get file ." |tee /tmp/install_python2.7.13.log

tar -zxvf Python-2.7.13.tgz |tee /tmp/install_python2.7.13.log >/dev/null
cd Python-2.7.13

echo "message: configure --prefix=/usr/local/python2.7.13" |tee /tmp/install_python2.7.13.log
echo "please wait ... " |tee /tmp/install_python2.7.13.log

./configure --prefix=/usr/local/python2.7.13 |tee /tmp/install_python2.7.13.log >/dev/null
sleep 1
echo "configure complete,continue..."  |tee /tmp/install_python2.7.13.log

echo "message: make && make install" |tee /tmp/install_python2.7.13.log
echo "please wait ... " |tee /tmp/install_python2.7.13.log
make && make install |tee /tmp/install_python2.7.13.log >/dev/null
sleep 1
echo "make && make install complete,continue..." |tee /tmp/install_python2.7.13.log

echo "mv /usr/bin/python /usr/bin/python-bak" |tee /tmp/install_python2.7.13.log
mv /usr/bin/python /usr/bin/python-bak
echo "ln -s /usr/local/python2.7.13/bin/python2 /usr/bin/python" |tee /tmp/install_python2.7.13.log
ln -s /usr/local/python2.7.13/bin/python2 /usr/bin/python

echo "rename python and create ln complete." |tee /tmp/install_python2.7.13.log

echo "change yum trouble" |tee /tmp/install_python2.7.13.log
sed -i "s/python/python-bak/" /usr/libexec/urlgrabber-ext-down
sed -i "s/python/python-bak/" /usr/bin/yum
echo "sed /usr/libexec/urlgrabber-ext-down /usr/bin/yum complete " |tee /tmp/install_python2.7.13.log

sleep 1

yum -y install gcc
if [ $? -eq 0 ];then
echo "change yum ok" |tee /tmp/install_python2.7.13.log
echo "install python 2.7.13 ok" |tee /tmp/install_python2.7.13.log
else
echo "change yum failed" |tee /tmp/install_python2.7.13.log
echo "install python 2.7.13 failed" |tee /tmp/install_python2.7.13.log
echo "rollback,please wait.." |tee /tmp/install_python2.7.13.log
sed -i "s/python-bak/python/" /usr/libexec/urlgrabber-ext-down
sed -i "s/python-bak/python/" /usr/bin/yum
mv /usr/bin/python /usr/bin/python-2.7.13
rm -rf /usr/bin/python-2.7.13
mv /usr/bin/python-bak /usr/bin/python

echo "rollback  complete " |tee /tmp/install_python2.7.13.log
echo "NOTE : you can check  /tmp/install_python2.7.13.log  "
exit 1
fi
}

install_pip()
{
echo "install pip ,please wait.." |tee /tmp/install_python2.7.13.log
mkdir ~/.pip/
yum -y install epel-release |tee /tmp/install_python2.7.13.log >/dev/null
sleep 1
yum install python-pip |tee /tmp/install_python2.7.13.log >/dev/null
sleep 1
yum clean all |tee /tmp/install_python2.7.13.log >/dev/null
sleep 1
echo "install pip complete . checking " |tee /tmp/install_python2.7.13.log

echo "use ali pypi " |tee /tmp/install_python2.7.13.log

echo '[global]' > ~/.pip/pip.conf
echo 'index-url = http://mirrors.aliyun.com/pypi/simple/' >> ~/.pip/pip.conf
echo " " >> ~/.pip/pip.conf
echo '[install]' >> ~/.pip/pip.conf
echo 'trusted-host=mirrors.aliyun.com' >> ~/.pip/pip.conf

pip install flask  |tee /tmp/install_python2.7.13.log >/dev/null
if [ $? -eq 0 ];then
echo "install pip ok " |tee /tmp/install_python2.7.13.log
else
echo "install pip failed,please check /tmp/install_python2.7.13.log" |tee /tmp/install_python2.7.13.log
exit 1
fi
}

main()
{
list_info
useroot
pre_install
install_python
install_pip
echo "NOTE : log file /tmp/install_python2.7.13.log"
}

main
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息