python项目部署到linux系统
引用: https://www.cnblogs.com/grimm/p/11104562.html https://www.cnblogs.com/zhongyehai/p/10619917.html
第一步:安装Python3环境
1.首先安装编译环境(后续需要从python官网获取Python3的源码自己编译python)
1
|
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
|
2.从官网下载python3的源码
1
|
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
|
3.依次执行 解压>进入解压后的目录>编译安装
1
|
tar -xvJf Python-3.6.2.tar.xz
|
4.安装完毕,创建软连接
1
|
ln -s /usr/local/python3/bin/python3 /usr/bin/python
|
5.后续工作,由于执行CentOS的yum命令需要使用自带的python2的版本,所以需要做两处修改
1
|
vim /usr/bin/yum
|
第二步:将本地开发环境的依赖项目生成清单文件
1.在本地的开发环境中,env下执行, 导出当前环境下所有的包:
1
|
pip3 freeze >requirements.txt
|
如果只想导出当前项目下引用的包: 进入项目的根目录下执行 pipreqs ./ 如果文件已存在 --force 覆盖原来文件
清单文件将会生成在当前项目目录下,内容如下所示
1
|
certifi==2018.4.16
|
将生成后的文件上传到linux服务器
2.将Python项目上传到服务器
1
|
#略...
|
第三步:在linux服务器上为项目创建虚拟环境,并安装项目所需的依赖
1.切换到pip3所在的目录 /usr/local/python/bin,执行以下命令
1
|
# 安装虚拟环境
|
2.如果没有安排pip:
wget https://bootstrap.pypa.io/get-pip.py
运行脚本python get-pip.py
查看版本pip -V
如果pip -V,出现notfound,把pip加到环境变量
[finance@finance-06 bin]$ echo 'export PATH=/usr/local/python3/bin:$PATH' >>~/.bashrc
[finance@finance-06 bin]$ source ~/.bashrc
第四步:添加自定义系统服务(很重要)
1
|
# 这样的命令在ssh终端退出后,python进程也会被杀掉
|
需要创建一个自定义的系统服务,来保证python程序能够在后台运行。
1.创建系统服务
1
|
vim /usr/lib/systemd/system/robot.service
|
内容如下:
1
|
[Unit]
|
ExecStart为服务启动时执行的命令,不能用相对路径, 一定要全路径。
这里也可以将命令写到任意的.sh文件中,这里写.sh文件的全路径也是可以的。
2.启用自定义系统服务
1
|
systemctl enable robot
|
3.启动服务
1
|
systemctl start robot
|
可以查看进程,确认一下服务是否启动
1
|
ps aux|grep robot
|