linux环境下python的部署

15 篇文章 4 订阅

linux系统环境自带python2.6,但有时我们项目使用的版本可能是3.x以上等等,此时我们需要在linux中再安装项目所需的python版本,

此时就涉及多版本共存问题了,很多同学在安装多个版本Python时会遇到各种问题,本篇文章针对python多版本共存做了详细安装说明

1.下载python安装包

打开https://www.python.org/downloads/,选择downloads>>All releases

 

这里我选择安装python3.6.1

 

选择源码安装,下载源码通过xshell拷贝到linux系统中,

在linux中,我们先进入到/opt目录中,该目录目录用来安装附加软件包

接下来,启动xshell的文件传输命令,然后将下载的源码包拖进来就行了

出现如下表示上传成功

2.解压和安装python软件包

第一步:安装python所需的依赖包

  执行命令:

1

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

 

第二步:解压python源码包

  执行命令:

1

tar -xzvf Python-3.6.1.tgz -C /usr/local/src/    #src一般用来存放源码目录

  进入到/usr/local/src/目录中

1

cd /usr/local/src/  #目录下的python-3.6.1就是解压后的源码包目录

  

  进入源码包目录:

1

cd /usr/local/src/Python-3.6.1

  配置python安装路径,记住,安装完成之后,在python3目录下有一个bin目录,/usr/local/python3/bin这个路径为将要添加的python安装的python环境变量

1

./configure --prefix=/usr/local/python3   #这里我选择将python安装到/usr/local/python3中

 

  配置检测完成之后,编译安装,执行命令:

1

make && make install

  

第三步:添加环境变量

  进入/etc/profile.d/目录下

1

cd /etc/profile.d/  

  新建一个python3.sh文件

1

vim python3.sh

  

文件内容添加环境变量,wq保存退出

  添加完环境变量之后,重载一下环境变量

1

source ../profile

  

   最后,echo一下环境变量是否添加成功

    至此,整个python安装完成

 

                                                                       第 二 种 安 装 方 法

3.1、安装python3

开始安装之前先看一下机器的环境,主要看一下操作系他的环境和python版本。
查看环境
操作系统:

 

[root@reportweb]#  cat /etc/redhat-release
CentOS release 6.5 (Final)

查看python版本:

 

[root@reportweb]# python -V
Python 2.6.6

 

[root@reportweb]# python3 -V
-bash: python3: command not found

可以看到操作系统是CentOS 6.5 ,python此时只有一个python2,没有python 3 。

下面开始进入正式安装:
第1步:下载python安装包,准备编译环境:

 

[root@reportweb]# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

第2步:下载python源码

 

[root@reportweb src]# wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz

第3步:解压

 

[root@reportweb src]# tar -zxvf Python-3.6.6.tgz

第4步:安装,编译

 

[root@reportweb src]# cd Python-3.6.2
[root@reportweb Python-3.6.2] # mkdir /usr/local/python3.6
[root@reportweb Python-3.6.2] # ./configure --prefix=/usr/local/python3.6
[root@reportweb Python-3.6.2] # make
[root@reportweb Python-3.6.2] # make install

第5步:建立软链

 

[root@reportweb Python-3.6.2] # ln -s /usr/local/python3.6/bin/python3.6  /usr/bin/python3

第6步:查询python版本

 

[root@reportweb]# python3 -V
Python 3.6.6

 

[root@reportweb]# python -V
Python 2.6.6

至此,python3安装完毕。

3.2、安装pip3

下面开始安装pip3的步骤。
第1步:安装setuptools

 

[root@reportweb src]# wget --no-check-certificate  https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26

第2步:解压

 

[root@reportweb src]# tar -zxvf setuptools-19.6.tar.gz

第3步:编译,安装

 

[root@reportweb src] # cd setuptools-19.6/
[root@reportweb setuptools-19.6] # python3 setup.py build
[root@reportweb setuptools-19.6] # python3 setup.py install

第4步:建立软链

 

[root@reportweb setuptools-19.6] #  ln -s /usr/local/python3.6/bin/pip3 /usr/bin/pip3

第5步:查看pip3版本

 

[root@reportweb] # pip3 -V
pip 8.0.2 from /usr/local/python3.6/lib/python3.6/site-packages/pip-8.0.2-py3.6.egg (python 3.6)

第6步:更新

 

[root@reportweb] # pip3 install --upgrade pip
Collecting pip
  Downloading https://files.pythonhosted.org/packages/00/b6/9cfa56b4081ad13874b0c6f96af8ce16cfbc1cb06bedf8e9164ce5551ec1/pip-19.3.1-py2.py3-none-any.whl (1.4MB)
    100% |████████████████████████████████| 1.4MB 172kB/s 
Installing collected packages: pip
  Found existing installation: pip 8.0.2
    Uninstalling pip-8.0.2:
      Successfully uninstalled pip-8.0.2
Successfully installed pip-19.3.1
[root@reportweb]# pip3 -V
pip 19.3.1 from /usr/local/python3.6/lib/python3.6/site-packages/pip (python 3.6)

至此,pip3安装完毕。

3.3、启动服务

启动服务分为前台启动和后台启动。

前台启动,就是应用直接由窗口运行,能在窗口直接打印出日志信息,如果手动 ctrl + C 打断时,应用停止。当使用前台启动时,如果我们退出终端,服务就会停止。
后台启动,就是用nohup等命令,执行应用,在窗口关闭后,或者 执行其他命令时,该应用仍然可以再后台运行。

使用前台启动python项目:

 

[root@reportweb]# python3 test.py
2020-01-02 16:00:47 读取原日志信息:00:00:01.560 [http-nio-8605-exec-5] [DEBUG] Bound request context to thread: org.apache.catalina.connector.RequestFacade@2dc071e6 org.springframework.boot.web.filter.OrderedRequestContextFilter [RID:] [TID:] [MID:]
2020-01-02 16:00:47 转换格式前信息:00:00:01.560 [http-nio-8605-exec-5] [DEBUG] Bound request context to thread: org.apache.catalina.connector.RequestFacade@2dc071e6 org.springframework.boot.web.filter.OrderedRequestContextFilter [RID:] [TID:] [MID:]
^CTraceback (most recent call last):
  File "test.py", line 174, in <module>
    read_rawlog()
  File "test.py", line 79, in read_rawlog
    line_json = log_data_to_json(line_temp)
  File "test.py", line 120, in log_data_to_json
    logger = re.findall(logger_rule, line)
  File "/usr/python3/lib/python3.6/re.py", line 222, in findall
    return _compile(pattern, flags).findall(string)
KeyboardInterrupt
[root@reportweb data]# 

前台会输出正常的日志信息,直到你按下 ctrl + c 打断它,就会报KeyboardInterrupt。
下面演示后台启动python文件:

 

[root@reportweb data]# nohup python3 test.py &

简单介绍一下nohup 命令

用途:不挂断地运行命令。

语法:nohup Command [ Arg … ] [ & ]

描述:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。nohup 执行 默认会自动生成一个 nohup.out 记录文件。

3.4、停止服务

前台启动的服务,直接 ctrl + c 停止服务,或者退出终端,服务就会停止。

后台启动的服务,用命令查看pid,然后 kill -9 pid 杀死任务。

 

[root@reportweb]# ps -ef|grep python
root      9233  2598 95 16:22 pts/0    00:00:16 python3 test.py
root      9244  2598  0 16:22 pts/0    00:00:00 grep python
[root@reportweb]# kill -9 9233
[root@reportweb]# ps -ef|grep python
[root@reportweb]# ps -ef|grep python
root      9257  2598  0 16:23 pts/0    00:00:00 grep python
[1]+  已杀死               nohup python3 test.py

3.5、查看python执行的日志

 

查看前10行命令:
[root@reportweb]# head -n 10 nohup.out

查看后10行命令:
[root@reportweb]# tail -n 10 nohup.out

显示文件 nohup.log 的内容,从第 20 行至文件末尾:
[root@reportweb]# tail +20 nohup.out

要跟踪名为 nohup.log 的文件的增长情况,请输入以下命令:
[root@reportweb]# tail -f nohup.out

tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。

命令格式:
tail [参数] [文件]
参数:

-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示文件的尾部 n 行内容
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值