如何打包Python Web项目实现免安装一键启动
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,如何打包Python Web项目实现免安装一键启动,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、现状Python 有诸多优秀的
千家信息网最后更新 2025年02月04日如何打包Python Web项目实现免安装一键启动一、现状
Python 有诸多优秀的 Web 开发框架供我们使用,比如Django、Flask、Sanic。正常的情况下,我们基于这些 Web 框架开发好了网站,最终都会使用 Nginx 搭配 uWSGI 或gunicorn 将其部署在 Linux 服务器上,这样,用户就可以通过 绑定的域名或 IP 地址访问。
是的,这是正常的情况。
往往很多场景,我们面对的就不是一个正常的情况。正常的情况下一切环境的问题都不是问题,因为有运维的伙伴帮我们处理好了所有环境的问题,从Python特定版本的安装,到特定依赖库的安装,再到服务的配置。一切都不需要操心。
但是,如果所有的这些问题都需要自己操心呢?那可真是一个灾难性的问题。Docker的出现解决了一部分的问题,但是对于完全小白而言,docker的安装和使用,又成为了一个问题。
州的先生在开发MrDoc觅道文档的时候,就遇到了这个问题。如果要源码安装 MrDoc,那么需要:
很多想体验一下 MrDoc 的小伙伴,直接就死在了第二步,各种报错无所适从。
有 MrDoc 交流群里的热心伙伴制作了docker镜像,这解决了一定的环境问题,但是对于真正零基础的计算机小白而言,命令行还是自带恐惧属性。
怎么办呢?能不能让Python编写的Web项目像 PHP 或GO 语言编写的Web服务一样可以直接启动呢?
在互联网上逛荡了老半天,发现老伙计--PyInstaller可以实现这个功能。
二、打包
PyInstaller是Python中一个用于将Python程序打包为可执行文件的第三方模块。 州的先生之前经常使用它将PyQt5编写的桌面图形界面程序打包分发。来看看它在打包Web程序上的应用。
PyInstaller官方提供了一个打包Django项目的文档,其链接为: https://github.com/pyinstaller/pyinstaller/wiki/Recipe-Executable-From-Django
按照这个文档,我们根据项目的具体情况,运行下述命令:
就会得到一个dist文件夹,里面包含了运行Django项目的所有文件,我们打开命令行界面,使用xxx.exe文件就可以达到像正常使用: 一样的效果。比如运行runserver服务:
但是,很大概率是运行不起来的,报错的信息,不是缺少模块,就是缺少静态文件。
我们需要显式地告诉PyInstaller,哪些包、哪些模块、哪些文件需要一起打包进去。
在上一次运行 pyinstaller 命令之后,文件夹下会生成一个.spec后缀的配置文件,其实质是一个Python文件,我们对其进行修改。
在文件第3行的位置,添加上述2行代码,用于避免pyinstaller索引模块层级的错误。
然后,在datas列表中,将Django项目的静态文件目录、媒体文件目录、以及其他使用到的文件目录全都以元组的形式添加进去。这会让PyInstaller直接将这些文件打包到最后生成的文件夹中。
接着,在hidedenimports列表中,将Django项目的应用模块路径也添加进去。可以根据每次生成的报错来一个一个添加,但是那样太浪费时间了,还不如直接都添加进去。
修改好了之后,我们把之前生成的build目录和dist目录删除,使用spec文件调用Pyinstaller命令:
等待一会儿,整个Django项目就打包好了,其完整的打包文件如下所示:
三、效果
打包好之后,我们打开命令行界面,输入命令: 就启动了Django Web网站,如下图所示:
在浏览器上访问: 127.0.0.1:8000 就可以看到我们的MrDoc觅道文档了:
为了方便使用,我们还可以写一个bat脚本,双击即可启动它,免去打开命令行界面输入命令的繁琐:
这样,一个免安装、一键启动的Django网站应用就打包制作完成了。
如何打包Python Web项目实现免安装一键启动,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
安装Python(基本不会出问题)
pip安装依赖库(非常容易出问题)
安装依赖的第三方软件包(非常容易出问题)
pyinstaller --name=mysite mysite/manage.py
python manage.py
xxx.exe runserver
import sys sys.setrecursionlimit(5000)
pyinstaller MrDoc.spec
mrdoc.exe runserver
start ./mrdoc.exe runserver
关于如何打包Python Web项目实现免安装一键启动问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
文件
问题
项目
命令
情况
模块
目录
运行
文档
界面
服务
生成
一键
文件夹
环境
程序
网站
应用
开发
伙伴
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网易中职网络安全王昊天
怎么判断数据库标识符合不合法
小皮软件连接数据库
云南新锐软件开发公司
网络安全方面都有哪些
网络安全应受到什么处罚
网络安全整改立项
公安部网络安全保卫局局长刘
关于网络安全的写话
服务器硬盘拆下来数据库报错
服务器 流量统计
域名域名备案服务器网站的关系
服务器web远程管理服务
access制作简易数据库
接数据库
鲁琴数据库
服务器密码忘了怎么办
好易买互联网科技有限公司
本地数据库没法连接
广东无线软件开发价钱
浙江大学网络安全考研复试线
网络技术买什么笔记本
网络安全等级保护工
计算机三级网络技术软件题库
台湾大陆互联网科技
发电厂网络安全监测装置
服务器过滤和上游过滤
软件开发 信息化服务 合同
网络技术服务怎么开店
软件开发过程中的测试