1 前言
学习python也有段时间了,最近一个小项目要部署,正好把过程写下来。
在程序的结构上我选择了w/s模式,相比于c/s模式,无需考虑客户端的升级;框架我选择了flask,就是冲着轻量级去的,就是插件多,教程的更新赶不上版本的更迭,比如flask-script。
2 部署方式
python是解释性语言,无需先编译成可执行程序。部署方式有好几种,我曾折腾过几种方法。
2.1 直接复制开发环境
这个方法看起来很简单,依赖模块无需再次安装。就是复制到别的地方要对虚拟环境进行手动修改,要更改好几个文件里的路径,还要执行一些命令修复。虽然我在windows系统上成功迁移过,但我不认为这是好方法。而且在linux系统上好像不行。
2.2 打包成whl模块
这个方法是将自己的项目做成一个包, 可以在其他地方使用pip离线安装。不过我没弄成功。假如项目是一个模块,需要分发给其他项目调用,这个方法就非常好。
2.3 打包成可执行文件
这个方法只适用windows系统,做成exe文件,可以脱离python的环境了,适合一些小程序。不过python不是c#,不是使用.net framework等公共库的,只能自带,所以体积不会小。
2.4 重新创建虚拟环境再复制源代码
这是我目前使用的方法。因为我的项目是最终应用,只安装在一台服务器上。我在服务器上安装相关软件、手动创建虚拟环境、安装依赖,再复制源代码, 系统就可以运行了。更方便的是,更改了代码,我可以直接从开发电脑用同步软件同步到服务器上,非常方便。
3 安装相关软件
3.1 安装python
从官网下载适合windows系统的安装包,运行安装程序
注意1: 安装的第一个界面一定要选择添加路径到系统变量的选项,否则不能直接在命令提示符里使用python相关命令,还要手动添加;
注意2: 安装完成后的界面有一个解除长度限制的按钮,这个我是吃过亏的。以前学python用的visual code, 代码运行出错就是因为这个。 当时是改注册表的, 现在安装包已经能集成了该功能。
安装完成后,可以在命令提示符中检查python命令和pip命令是否正常。
3.2 安装配套
根据自己的项目安装其他配套软件,windows系统上安装还是很简单的。
3.2.1 数据库软件
我用的是mysql,官网下载安装包安装即可;我还用redis作为内存数据库,用来存储日志等不重要的数据。
3.2.2 安装nginx
我做的都是小项目,虽然要求不高,不过我还是使用了nginx作为反向代理。我下载的是1.26,绿色版,无需安装,只要设置好配置文件,运行即可。