Py学习  »  Django

使用shell来升级python安装Django

kefu • 7 年前 • 1586 次点击  

前言:

自己会创建很多的虚拟机来模拟真实情况,从而每次在每个虚拟机会做很多重复的工作,从而使用shell脚本来简化,此次是因为每次都要升级python到2.7版本,从而写出下面的shell。

在安装软件的时候,将所有需要安装的软件放在单独的目录install中,便于规范整理,例如如下:

[root@Bserver install]# ls -l
total 25988
-rw-r--r-- 1 root root  7700057 Sep 19 11:19 Django-1.10.1.tar.gz
-rw-r--r-- 1 root root   108935 Sep 19 11:19 MySQL-python-1.2.5.zip
-rw-r--r-- 1 root root  1138794 Sep 19 11:19 pip-8.1.0.tar.gz
-rw-r--r-- 1 root root 16856409 Sep 19 11:19 Python-2.7.11.tgz
-rw-r--r-- 1 root root   793737 Sep 19 11:19 setuptools-7.0.tar.gz
-rw-r--r-- 1 root root     1512 Sep 19 11:19 upgradepython.sh

在进行执行脚本的时候,直接使用sh upgradepython.sh执行即可,分别的步骤如下:

检查需要安装的包是否安装,如果没有安装,那么直接使用yum进行安装

安装python,这个大约需要六分钟时间
将python进行链接,并且解决yum不能使用的问题
安装setuptools
安装pip
安装Django
安装mysql模块
将mysql设置开机启动并启动
打印Django版本

脚本内容如下:测试可以使用,并且可以直接使用django,然后运行测试,可以修改settings,然后使用mysql数据库:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/bash
#filename:upgradepython.sh
#date:2016/09/19
#version:1.0
#author:kel
INSTALLPATH=/server/install/
#check the package 
echo "check the package"
for i in  python-devel readline-devel sqlite-devel bzip2-devel openssl-devel ncurses-devel zlib-devel  readline sqlite bzip2 openssl libdbi ncurses zlib gdbm MySQL-python mysql-server mysql-devel
do
    result=`rpm -qa $i`
    if [ ! -n "$result" ]
    then
        yum -y install $i &>/dev/null
    else 
        echo "--$i is install --"
    fi
done

#install python
echo "install python ,will take six minutes,smoking now..." 
cd $INSTALLPATH && tar -zxvf Python-* &>/dev/null && cd Python-* && ./configure --prefix=/usr/local/python &>/dev/null && make &>/dev/null && make install &>/dev/null && echo "python is installed /usr/local/python"

sed -i "1s/python/python2.6/" /usr/bin/yum 
mv /usr/bin/python /usr/bin/python2.6.bak
ln -s /usr/local/python/bin/python /usr/bin/python

cd $INSTALLPATH && tar -zxvf setuptools-* &>/dev/null && cd setuptools-* && python setup.py install &>/dev/null && echo "setuptools is installed"
cd $INSTALLPATH && tar -zxvf pip-* &>/dev/null && cd pip-* && python setup.py install &>/dev/null && cd .. && echo "pip is installed"
cd $INSTALLPATH && tar -zxvf Django-* &>/dev/null && cd Django-* && python setup.py install &>/dev/null &&echo "django is installed"
cd $INSTALLPATH && unzip MySQL-python-* &>/dev/null && cd MySQL-python-* && python setup.py install &>/dev/null &&echo "mysqldb installed"

chkconfig mysqld on
/etc/init.d/mysqld start &>/dev/null
echo "the django version is `python -m django --version`"

主要目的是为了在新建虚拟机之后,只要上传安装的文件,然后执行脚本即可,提供便利性。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/1675
 
1586 次点击  
文章 [ 2 ]  |  最新文章 7 年前
大丁
Reply   •   1 楼
大丁    7 年前

不错,加些判断更好~~~赞~~~

Py站长
Reply   •   2 楼
Py站长    7 年前

支持~