第一步:安装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.xz2 cd Python-3.6.2
3 ./configure prefix=/usr/local/python34 make && make install
View Code
4.安装完毕,创建软连接
1 ln -s /usr/local/python3/bin/python3 /usr/bin/python2 #执行命令
3 python -V #将会看到python3的版本
4 #执行命令
5 python2 -V #将会看到python2的版本
View Code
5.后续工作,由于执行CentOS的yum命令需要使用自带的python2的版本,所以需要做两处修改
1 vim /usr/bin/yum2 vim /usr/libexec/urlgrabber-ext-down3 #将 这两个文件的 #! /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 virtualenv3
4 #创建虚拟环境 ENV
5 virtualenv ENV6
7 #切换到虚拟环境所在的目录
8 cd ENV9
10 #启用虚拟环境
11 source ./bin/activate12
13 #安装依赖清单里的库
14 pip3 install -r requirements.txt15
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=robot3 After=network.target4
5 [Service]6 Type=forking7 ExecStart=/usr/local/python3/bin/ENV/bin/python /usr/local/python3/bin/ENV/p3.py &
8 PrivateTmp=true9
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