部署python项目到linux服务器
最近用Python写了个外挂,需要部署到Linux环境的服务器上,由于之前本地开发时使用virtualenv,使用这个虚拟环境有个好处是项目中依赖的库不会是全局的,只在当前项目的目录下有效,因为我是Mac系统,virtualenv环境下的库文件和linux上所需要的库不通用,所以不能简单的将整个env拷贝到服务器运行,需要做一些额外的工作。
一般每个不同的项目都会依赖各自的库,有些库的版本不一样会引起冲突,为了解决这个问题,需要使用虚拟环境,Python可以在每个项目目录下创建各自的虚拟环境,项目所依赖的包就在环境目录下,这样避免了库版本的冲突,也方便相同操作系统间可以快速的拷贝项目运行。
我使用的是Python3编写的项目,CentOS 7的服务器上只有Python2,所以需要先安装一下Python3的环境
第一步:安装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
|
清单文件将会生成在当前项目目录下,内容如下所示
1
|
certifi==2018.4.16
|
将生成后的文件上传到linux服务器
2.将Python项目上传到服务器
1
|
#略...
|
第三步:在linux服务器上为项目创建虚拟环境,并安装项目所需的依赖
1.切换到pip3所在的目录 /usr/local/python/bin,执行以下命令
1
|
# 安装虚拟环境
|
第四步:添加自定义系统服务(很重要)
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
|
完毕!
相关文章
- 【Linux】在linux上java工具jps jstat jinfo等命令找不到怎么办
- 利用python求解物理学中的双弹簧质能系统详解
- 小白学 Python(1):开篇
- 【Python五篇慢慢弹】数据结构看python
- 蓝桥杯 跑步训练python实现
- [LINK]Python服务器开发一:python基础
- linux 错误码 65280,Android:无法在同一部手机上执行通过Linux部署编译的文件
- 在校学【Python】接单兼职不香吗?
- Python:利用python代码编程实现将视频的avi格式转换为MP4格式
- python --> Python初阶 --> 基础语法 --> 条件和分支
- python装饰器改变命运
- 【Python成长之路】python 基础篇 -- 装饰器【华为云分享】
- 【阶段二】Python数据分析Pandas工具使用08篇:探索性数据分析:数据的描述:数据的分散趋势与数据的分布形态
- Python编程:python面向对象
- pycharm下可以运行python项目,Linux命令行下报错无法导包,且sys.path.appen()添加环境变量无效
- python里使用正则表达式的限制边界功能
- 聊聊 Python 自动化脚本部署服务器全流程(详细)
- 周立功arm linux教程,极速搭建周立功IMX287A ARM Linux开发环境
- AWS China Elastic Beanstalk 填坑记(Python Flask)
- 【Leetcode刷题Python】剑指 Offer 22. 链表中倒数第k个节点
- Python 根据文件的前几位字母或者文件的后缀名称精确查找文件(windows和Linux系统通用)第二版
- python twised系列教程四–twisted Poetry client
- Docker学习笔记17:docker实例之安装 Node.js、PHP、MySQL、Tomcat、Python、Redis、MongoDB、Apache
- 用 Python 脚本实现对 Linux 服务器的监控
- 02 从头开始atac项目 ubuntu20 install r4.2 Linux系统环境配置 服务器版本的rstudio r install in linux /ubuntu/centos
- 安卓通过Linux Deploy安装linux系统