django项目打包成exe文件,并在windows服务器上运行
一、前言
要想项目能够持久运行,且不用每次都手动启动项目。就需要用到服务器,来代替我们启动项目。可以理解成:远程的一台电脑帮我们启动项目,只要远程的电脑不关闭,常见的服务器系统有windows和linux,这里以windows为例。
二、准备环境
1.pyinstaller
pyinstaller可以帮助我们打包解析项目文件,并生成相对应的配置
pip install pyinstaller
2.生成.spec文件
pyi-makespec -D manage.py
这里我们会在项目的根目录下生成一个manage.spec文件,如下图:
图中圈出来的部分,刚开始是没有的,这里有个大坑,也很不方便。就是每次打包的时候都会出错,提示no module named xxx,这个xxx就是需要我们添加到hiddenimports列表里面的东西。麻烦的点就是不太清楚是哪几个,如果你是用django写的项目的话,拿必然会用到的是以下5个,后面打包的过程中,如果还有需要隐藏的可再次手动添加。5个modele如下:
'rest_framework.authentication','rest_framework.permissions','rest_framework.parsers','rest_framework.negotiation','rest_framework.metadata'
三、打包
准备好以上工作,我们就可以开始打包了。首先win+R到达我们的根目录下:
pyinstaller manage.spec
等待打包完成,会发现我们多了两个文件夹,dist和build
我们的.exe文件在我们的dist\manage目录下
四、部署windows服务器
我们将刚才的项目压缩成.zip文件。打开远程桌面连接
除了要设置我们的ip地址以外,还要设置我们的本地资源,也就是将我们刚才压缩好的.zip文件同步到服务器上。在我们的windows服务器上解压刚才的文件,拿到我们的项目。
五、启动项目
进入到我们的项目dist/manage目录下,输入:
python manage.exe runserver
这样的启动的方式是我们服务器的ip,当然也可以指定端口例如:
python manage.exe runserver 106.12.122.xx 8001
这样的话,只要我们这个windows服务器不关,我们的项目就可以一直跑。
六、思考
我觉得这种部署项目真的很方便,运用这样的方法,我在项目中加定时任务,自动调用接口。每天只需要观察邮件日志即可,实现了一个自动化的操作。
希望能给大家带来帮助,喜欢的点赞收藏哦。
来源:戒酒的李白-Lisage