pyinstall 打包Django程序

pyinstall 打包Django程序

基本流程

安装pyinstaller

bash 复制代码
pip install pyinstaller

生成.spec文件

在编辑器的虚拟环境中执行如下命令:

bash 复制代码
pyi-makespec -D manage.py

编辑manage.spec文件

在a = Analysis()的hiddenimports=\[\]列表中添加如下文件:

  • INSTALLED_APPS所有应用
  • MIDDLEWARE 中所有中间件
  • urls.py 中的所有url引用包
  • TEMPLATESlibraries下的所有包

生成.exe文件

执行如下命令,生成mannage.exe文件

bash 复制代码
pyinstaller manage.spec

模板文件和静态文件

复制模板templates文件夹和static文件夹到_internal

如果有其他外部文件也需要手工复制

运行命令

bash 复制代码
manage.exe runserver 0.0.0.0:8080 --noreload

说明:一定需要加上--noreload

常见错误

  • TypeError: expected str, bytes or os.PathLike object, not NoneType

    原因是不是每个应用中都有__init__.py文件,需要检查所有应用,添加上改文件,内容为空。

  • 启动服务时提示 No module named XXX

    需要配置.spec文件项目中的对应项目需要写入hiddenimports里面,提示缺少什么,添加上该模块,然后重新打包

  • RuntimeError: Script runserver does not exist.

    解决办法:只需在命令末尾加上 --noreload即可

相关推荐
努力攻坚操作系统19 小时前
重新理解 RESTful:从理论约束到工程实践
后端·restful
奔跑的Ma~19 小时前
企业级 Codex 部署与团队协作方案
后端·python·ai编程·codex·ai学习
明月_清风19 小时前
实战选型决策树——一张图搞定"我这个场景该用什么序列化方案"
后端
星越华夏19 小时前
python办公自动化,csv文件/excel文件差集合并
开发语言·python·excel
jiayong2319 小时前
03 写第一个带逐行注释的 Python 程序
python
武子康19 小时前
Java-09 深入浅出 MyBatis 注解开发详解:从 CRUD 到复杂关系映射
java·后端·spring
弹简特19 小时前
【零基础学Python】04-Python运算符、分支、循环与随机数实战教程
开发语言·python
一天 24h19 小时前
Python自定义迭代器:从入门到精通
开发语言·python·迭代器模式·学习方法·新人首发
在繁华处19 小时前
Hermes Agent 完全使用指南:从安装到多平台部署的全流程教程
python·开源·飞书
神奇小汤圆19 小时前
Java 泛型解析太痛苦?你可能需要一枚「蛋」
后端