部署python项目到linux服务器

第一步:安装Python3环境

1.首先安装编译环境(后续需要从python官网获取Python3的源码自己编译python)

1 yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
View Code

2.从官网下载python3的源码

1 wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
View Code

3.依次执行 解压>进入解压后的目录>编译安装

1 tar -xvJf  Python-3.6.2.tar.xz
2 cd Python-3.6.2
3 ./configure prefix=/usr/local/python3
4 make && make install
View Code

4.安装完毕,创建软连接

1 ln -s /usr/local/python3/bin/python3 /usr/bin/python
2 # 执行命令
3 python -V #将会看到python3的版本
4 # 执行命令
5 python2 -V #将会看到python2的版本
View Code

 5.后续工作,由于执行CentOS的yum命令需要使用自带的python2的版本,所以需要做两处修改

1 vim /usr/bin/yum
2 vim /usr/libexec/urlgrabber-ext-down
3 #将 这两个文件的 #! /usr/bin/python修改为 #! /usr/bin/python2
View Code

第二步:将本地开发环境的依赖项目生成清单文件

1.在本地的开发环境中,env下执行:

1 pip3 freeze >requirements.txt
View Code

清单文件将会生成在当前项目目录下,内容如下所示

1 requests==2.19.1
2 urllib3==1.23
View Code

将生成后的文件上传到linux服务器

2.将Python项目上传到服务器

第三步:在linux服务器上为项目创建虚拟环境,并安装项目所需的依赖

1.切换到pip3所在的目录 /usr/local/python/bin,执行以下命令

 1 # 安装虚拟环境
 2 pip3 install virtualenv
 3 
 4 # 创建虚拟环境 ENV
 5 virtualenv ENV
 6 
 7 # 切换到虚拟环境所在的目录
 8 cd ENV
 9 
10 # 启用虚拟环境
11 source ./bin/activate
12 
13 # 安装依赖清单里的库
14 pip3 install -r requirements.txt
15 
16 # 列出当前虚拟环境所安装的依赖库
17 pip3 list
View Code

第四步:添加自定义系统服务(很重要)

1 # 这样的命令在ssh终端退出后,python进程也会被杀掉
2 python xxx.py &
View Code

需要创建一个自定义的系统服务,来保证python程序能够在后台运行。

1.创建系统服务

1 vim /usr/lib/systemd/system/robot.service
View Code

内容如下:

 1 [Unit]
 2 Description=robot
 3 After=network.target
 4  
 5 [Service]
 6 Type=forking
 7 ExecStart=/usr/local/python3/bin/ENV/bin/python /usr/local/python3/bin/ENV/p3.py &
 8 PrivateTmp=true
 9  
10 [Install]
11 WantedBy=multi-user.target
View Code

ExecStart为服务启动时执行的命令,不能用相对路径, 一定要全路径。
这里也可以将命令写到任意的.sh文件中,这里写.sh文件的全路径也是可以的。

2.启用自定义系统服务

1 systemctl enable robot
View Code

3.启动服务

1 systemctl start robot
View Code

可以查看进程,确认一下服务是否启动

1 ps aux|grep robot
View Code
原文地址:https://www.cnblogs.com/wangjian941118/p/10267810.html