python3.70运行两个文件_python3自动安装剧本,python3.x与python2.x共存

本文分享了一个自动化安装Python3.7的shell脚本,旨在实现与Python2.x共存,避免环境破坏。脚本包括openssl升级、Python3.7安装和程序部署,每个步骤都有详细说明。通过调用集成脚本中的函数,用户可便捷地进行安装和部署。整个过程大约需要30分钟,适用于需要升级Python环境的场景。
摘要由CSDN通过智能技术生成

1.前言:

在安装python3历程中,通过搜索一些文章参考,发现对照贫苦,而且还泛起一些不能预期的报错。python3环境需要升级openssl,以是为了部署到其他环境更利便,写自动安装剧本方式,且安装模式为python3.x与python2.x共存,防止可能发生原有环境异常的情形。

现在我把剧本分享出来,希望可以辅助到有需要的人,营业采集监控python剧本文件不提供,由于那些跟现实营业开发关联对照紧,对照没有参考意义也不利便公然。

shell自动安装剧本,只需按说明简朴修改设置,和挪用集成剧本对应函数即可完成。安装历程约莫30分钟,仅做参考,依网速快慢而定。

2.文件夹功效说明:

文件夹名称

功效说明

python3_deploy

存放部署需要shell剧本文件

python3_script

存放实现采集监控信息python剧本

3.python3_deploy下文件摘要说明

shell剧本文件

主要用途

备注

cnl_function.sh

常用方式(检测上一次操作是否正常完成)

安装服务剧本引用

openssl_install_step_1.sh

openssl服务升级自动安装部署

python3_install_step_2.sh

python3.7服务自动安装部署

python3_process_step_3.sh

python3程序自动部署&启动监控信息采集剧本

需设置,下文详细说明

deploy_python3.sh

集成剧本,主要操作入口

需设置,下文详细说明

4.shell安装剧本

4.1. cnl_function.sh 剧本内容:

1 #!/bin/bash

2 #chennailuan's function

3

4

5 #check last command id Ok or not.

6 check_ok(){7 if [ $? !=0 ]8 then9 echo "Error,Check the error log."

10 exit 1

11 else

12 echo13 fi14 }

4.2.openssl_install_step_1.sh 剧本内容:

1 #!/bin/bash

2 #@author:xiufen.huang

3 #@date:2019-09-03

4 ###############################################

5 echo ""

6 echo ""

7 echo "***************************************************************"

8 echo "* *"

9 echo "* *"

10 echo "* openssl服务升级自动安装部署 *"

11 echo "* *"

12 echo "* *"

13 echo "***************************************************************"

14 echo ""

15 echo ""

16 echo "*****安装时间约莫15分钟,仅做参考,依网速快慢而定,请耐心守候*****"

17

18 #导入常用方式类

19 source ./cnl_function.sh20

21 #获取剧本所在的当前路径

22 path_now=$(cd "$(dirname"$0")"; pwd)23 echo "剧本执行当前路径为: $path_now"

24

25 start_time=$(date '+%Y-%m-%d %H:%M:%S')26 echo "安装最先时间:$start_time"

27

28 echo "1.下载最新版openssl"

29 [ -f openssl-1.1.1a.tar.gz ] || wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz30

31 #若是存在解压路径删除

32 [ -d openssl-1.1.1a ] && rm -rf openssl-1.1.1a33

34 echo "2.解压安装包"

35 tar -zxf openssl-1.1.1a.tar.gz36

37 #磨练上一下令是否正常执行完成

38 check_ok39

40 echo "3.备份原设置"

41 [ -f /usr/bin/openssl.bak ] || mv /usr/bin/openssl /usr/bin/openssl.bak42 [ -f /usr/include/openssl.bak ] || mv /usr/include/openssl/ /usr/include/openssl.bak43

44 #openssl安装目录

45 path_openssl=/usr/local/openssl46

47 echo "4.建立安装目录"

48 echo "判断是否存在openssl文件夹,若是不存在则新建openssl文件夹"

49 if [ -d $path_openssl ]50 then51 echo "openssl文件夹已经建立,不需要重复建立!"

52 else

53 mkdir -p /usr/local/openssl54 echo "openssl文件夹建立乐成!"

55 fi56 echo ""

57

58 echo "5.编译安装编译工具及库"

59 cd openssl-1.1.1a60 check_ok61

62 #安装gcc编译器

63 yum install gcc* glien* -y64 check_ok65

66 echo "最先编译......"

67 #一定要shared zlib,否则python3安装带ssl,pip无法使用

68 ./config --prefix=/usr/local/openssl shared zlib69 check_ok70

71 echo "最先安装......"

72 make73 check_ok74 make install75 check_ok76

77 echo "6.新版设置"

78 #将安装好的openssl下令软连到/usr/bin/openssl

79 [ -f /usr/bin/openssl ] || ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl80 #将安装好的openssl 的openssl下令软连到/usr/bin/openssl

81 [ -f /usr/include/openssl ] || ln -s /usr/local/openssl/include/openssl /usr/include/openssl82 #软链到升级后的libssl.so

83 [ -f /usr/local/lib64/libssl.so ] || ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/local/lib64/libssl.so84 #添加软链

85 [ -f /usr/lib64/libssl.so.1.1 ] || ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1

86 [ -f /usr/lib64/libcrypto.so.1.1 ] || ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

87

88 echo "7.修改系统设置"

89 #写入openssl库文件的搜索路径

90 echo "/usr/local/openssl/lib" >> /etc/ld.so.conf91

92 #使修改后的/etc/ld.so.conf生效

93 /sbin/ldconfig -v94

95 echo "8.查看openssl版本"

96 openssl version97

98 echo "删除安装包"

99 rm -rf openssl-1.1.1a100 rm -rf openssl-1.1.1a.tar.gz101

102 end_time=$(date '+%Y-%m-%d %H:%M:%S')103 echo "安装竣事时间:$end_time"

104

105 echo "openssl服务升级完成."

4.3.python3_install_step_2.sh 剧本内容:

1 #!/bin/bash

2 #@author:xiufen.huang

3 #@date:2019-09-03

4 ###############################################

5 echo ""

6 echo ""

7 echo "***************************************************************"

8 echo "* *"

9 echo "* *"

10 echo "* python3.7服务自动安装部署 *"

11 echo "* *"

12 echo "* *"

13 echo "***************************************************************"

14 echo ""

15 echo ""

16 echo "*****安装时间约莫12分钟,仅做参考,依网速快慢而定,请耐心守候*****"

17

18 #导入常用方式类

19 source ./cnl_function.sh20

21 #获取剧本所在的当前路径

22 path_now=$(cd "$(dirname"$0")"; pwd)23 echo "剧本执行当前路径为: $path_now"

24

25 start_time=$(date '+%Y-%m-%d %H:%M:%S')26 echo "安装最先时间:$start_time"

27

28 echo "1.下载Python-3.7.4.tgz"

29 [ -f Python-3.7.4.tgz ] || wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz30

31 #若是存在解压路径删除

32 [ -d Python-3.7.4 ] && rm -rf Python-3.7.4

33

34 echo "2.解压安装包"

35 tar -xvf Python-3.7.4.tgz36

37 #磨练上一下令是否正常执行完成

38 check_ok39

40 echo "3.安装编译工具及库"

41 cd Python-3.7.4

42 check_ok43

44 #安装gcc编译器

45 yum install gcc* glien* -y46 check_ok47

48 #非必须--安装失败时,可以实验安装组的开发工具:

49 yum grouplist50 check_ok51 yum groupinstall 'Development Tools' -y52 check_ok53

54 #安装依赖包,解决make报错ModuleNotFoundError: No module named '_ctypes'的解决办法

55 yum install libffi-devel -y56

57 #python3.7安装目录

58 path_python=/usr/local/python359

60 echo "4.建立安装目录"

61 echo "判断是否存在python3文件夹,若是不存在则新建python3文件夹"

62 if [ -d $path_python ]63 then64 echo "python3文件夹已经建立,不需要重复建立!"

65 else

66 mkdir -p /usr/local/python367 echo "python3文件夹建立乐成!"

68 fi69 echo ""

70

71 #修改./Modules/Setup.dist文件,解决pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

72 #代码块,echo一定要用单引号'

73 echo '_socket socketmodule.c' >> Modules/Setup.dist74 echo 'SSL=/usr/local/openssl' >> Modules/Setup.dist75 echo '_ssl _ssl.c \' >> Modules/Setup.dist

76 echo '-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \' >> Modules/Setup.dist

77 echo '-L$(SSL)/lib -lssl -lcrypto' >> Modules/Setup.dist78

79 echo "5.最先编译"

80 ./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl --with-ssl-default-suites=python81 check_ok82

83 echo "6.最先安装"

84 make85 check_ok86 sudo make install87 check_ok88

89 echo "7.建立快捷路径"

90 #添加软链接

91 [ -f /usr/bin/python3 ] || ln -s /usr/local/python3/bin/python3 /usr/bin/python392 [ -f /usr/bin/pip3 ] || ln -s /usr/local/python3/bin/pip3 /usr/bin/pip393

94 echo "8.磨练是否安装乐成"

95 python3 -V96

97 echo "删除安装包"

98 rm -rf Python-3.7.4

99 rm -rf Python-3.7.4.tgz100

101 echo "升级pip3版本"

102 pip3 install --upgrade pip -i http://pypi.douban.com/simple --trusted-host pypi.douban.com103 pip3 install --upgrade setuptools -i http://pypi.douban.com/simple --trusted-host pypi.douban.com104

105 pip3 list106

107 end_time=$(date '+%Y-%m-%d %H:%M:%S')108 echo "安装竣事时间:$end_time"

109

110 echo "python3.7服务安装完成."

4.4.python3_process_step_3.sh 剧本内容:

1 #!/bin/bash

2 #@author:xiufen.huang

3 #@date:2019-09-03

4 ###############################################

5 echo ""

6 echo ""

7 echo "****************************************************************************"

8 echo "* *"

9 echo "* *"

10 echo "* python3程序自动部署&启动监控信息采集剧本 *"

11 echo "* 部署需要的文件,需要提前用rz上传,详细请参阅:详细操作步骤说明.md *"

12 echo "* *"

13 echo "* *"

14 echo "****************************************************************************"

15 echo ""

16 echo ""

17 echo "***********部署时间约莫3分钟,仅做参考,依网速快慢而定,请耐心守候************"

18

19 #导入常用方式类

20 source ./cnl_function.sh21

22 #程序部署目录(凭据自己情形,修改为自己的部署目录)

23 deploy_path="/apps/python3_script"

24

25 #监控信息采集剧本

26 startup_file="collector_startup.py"

27

28 #切到程序部署目录

29 cd $deploy_path30

31 #获取剧本所在的当前路径

32 path_now=$(cd "$(dirname"$0")"; pwd)33 echo "剧本执行当前路径为: $path_now"

34

35 start_time=$(date '+%Y-%m-%d %H:%M:%S')36 echo "部署最先时间:$start_time"

37

38 echo "1.安装dos2unix下令"

39 yum -y install dos2unix*

40

41 check_ok42

43 echo "2.安装postgresql插件"

44 #linux环境要安装模块psycopg2,需要先安装postgresql插件

45 yum install postgresql-devel* -y46

47 #判断是否上传剧本了

48 if [ ! -e requirements.txt ]49 then50 echo "本次部署需要剧本,请再次确认是否按【详细操作步骤说明.md】 上传了?"

51 exit 1

52 else

53 #1.执行下令安装requirements.txt中的模块

54 echo "3.安装程序需要的python3模块"

55 pip3 install -r requirements.txt -i http://pypi.douban.com/simple --trusted-host pypi.douban.com56 check_ok57 fi58

59 #查看已经安装的模块

60 pip3 list61

62 echo "4.睡眠2秒,查看安装模块"

63 sleep 2s64

65 echo "5.转换剧本文件花样"

66 sudo find -name "*.py" |xargs dos2unix67

68 check_ok69

70 echo "6.批量增添可执行权限"

71 chmod +x *.py72

73 echo "7.启动python程序"

74 nohup python3 -u $deploy_path/$startup_file &

75

76 sleep 1s77 rm -rf nohup.out78

79 end_time=$(date '+%Y-%m-%d %H:%M:%S')80 echo "8.部署竣事时间:$end_time"

81

82 echo "python3程序部署完成."

4.5.deploy_python3.sh 剧本内容:

1 #!/bin/bash

2 #@author:xiufen.huang

3 #@date:2019-09-03

4 ###############################################

5 echo ""

6 echo ""

7 echo "**************************************************"

8 echo "* *"

9 echo "* *"

10 echo "* python3程序部署集成剧本 *"

11 echo "* 详细请参阅:详细操作步骤说明.md *"

12 echo "* *"

13 echo "* *"

14 echo "**************************************************"

15 echo ""

16 echo ""

17

18 #openssl服务升级自动安装部署--shell剧本

19 step_1="openssl_install_step_1.sh"

20

21 #python3.7服务自动安装部署--shell剧本

22 step_2="python3_install_step_2.sh"

23

24 #python3程序自动部署--shell剧本

25 step_3="python3_process_step_3.sh"

26

27 #程序部署目录(凭据自己情形,修改为自己的部署目录)

28 deploy_path="/apps/python3_script"

29

30 #监控信息采集剧本

31 startup_file="collector_startup.py"

32

33 #openssl服务升级自动安装部署

34 function openssl(){35 sh $step_136 }37

38 #python3.7服务自动安装部署

39 function python3(){40 sh $step_241 }42

43 #python3程序自动部署&启动监控信息采集剧本--shell剧本

44 function process(){45 sh $step_346 }47

48 #启动监控信息采集剧本

49 function start(){50 echo "最先启动监控信息采集剧本..."

51 #查找python3运行的历程数

52 num=`ps -ef|grep python3|grep -v grep|wc -l`53 #echo "$num...."

54 #判断是否有python3历程运行,若是没有则运行执行nohup下令

55 if [ "$num" = "0" ] || [ "$num" = "2"] ;then56 #切到程序部署目录

57 cd $deploy_path58 nohup python3 -u $deploy_path/$startup_file &

59 echo "启动乐成..."

60 sleep 1s61 rm -rf nohup.out62 else

63 echo "历程已经存在,启动失败,请检查..."

64 exit 065 fi66 }67

68 #信息监控信息采集剧本

69 function stop(){70 echo "最先住手监控信息采集剧本..."

71 num=`ps -ef|grep python3|grep -v grep|wc -l`72 #echo "$num...."

73 if [ "$num" = "0" ] || [ "$num" = "2"];then74 echo "服务未启动,无须住手..."

75 else

76 #正常住手python3

77 ps -ef|grep python3|grep -v grep|awk '{print $2;}'|xargs kill78 echo "历程已经关闭..."

79 fi80 }81

82

83 #case 下令获取输入的参数,例:参数:start,执行start(),参数:stop,执行stop(),

84 case "$1" in

85 "openssl")86 openssl87 ;;88 "python3")89 python390 ;;91 "process")92 process93 ;;94 "start")95 start96 ;;97 "stop")98 stop99 ;;100 *)101 ;;102 esac

5.使用说明

5.1.设置部署路径-自动部署剧本

文件路径:/python3_deploy/python3_process_step_3.sh ,只需修改程序部署目录deploy_path的值

1 #程序部署目录(凭据自己情形,修改为自己的部署目录)

2 deploy_path="/apps/python3_script"

5.2.设置部署路径-集成剧本

文件路径:/python3_deploy/deploy_python3.sh ,只需修改程序部署目录deploy_path的值

1 #程序部署目录(凭据自己情形,修改为自己的部署目录)

2 deploy_path="/apps/python3_script"

5.3.上传部署shell剧本

上传文件夹:python3_deploy下的所有文件到指定目录,可以为部署目录(即步骤1、2设置值),也可自己建立的一个目录存储(建议单独目录存储)。假设存储目录:/apps/python3_deploy 。上传完成后,需要为shell剧本给定可执行权限。

1 #批量增添可执行权限

2 chmod +x *.sh

5.4.升级openssl服务版本

升级openssl版本,是为了解决:使用pip3时报错:pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

安装只需要集成剧本提供的函数,完成自动升级,历程约莫15分钟,仅做参考,依网速快慢而定。

1 #自动升级下令

2 sh deploy_python3.sh openssl

升级完成,会给出提醒信息:openssl服务升级完成,及升级后版本信息。

5.5.安装python3.7服务

安装模式为python3.x与python2.x共存。下令:python , pthon2 指向python2.x,下令:python3,pip3指向python3.x。

安装只需要集成剧本提供的函数,完成自动安装,历程约莫12分钟,仅做参考,依网速快慢而定。

1 #自动安装下令

2 sh deploy_python3.sh python3

安装完成,会给出提醒信息:python3.7服务安装完成,及安装版本,python3模块信息。

5.6.部署采集监控信息

该步骤完成python3程序自动部署环境初始化和启动监控信息采集剧本,原则上只执行一次,可执行多次。

安装只需要集成剧本提供的函数,完成自动部署,历程约莫3分钟,仅做参考,依网速快慢而定。

1 #自动部署下令

2 sh deploy_python3.sh process

部署完成,会给出提醒信息:python3程序部署完成。

5.7.程序启动或住手

启动或住手下令不限次挪用,按需挪用。

1 #启动

2 sh deploy_python3.sh start3

4 #住手

5 sh deploy_python3.sh stop

原文链接:https://www.cnblogs.com/huangxiufen/p/12391755.html

本站声明:网站内容来源于网络,若有侵权,请联系我们,我们将及时处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值