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即可

相关推荐
Java水解5 分钟前
PostgreSQL 自增序列SERIAL:从原理到实战
后端·postgresql
悟空码字27 分钟前
单点登录:一次登录,全网通行
java·后端
BBB努力学习程序设计28 分钟前
Python面向对象编程:从代码搬运工到架构师
python·pycharm
倚肆36 分钟前
Spring Boot Security 全面详解与实战指南
java·spring boot·后端
rising start37 分钟前
五、python正则表达式
python·正则表达式
bin91531 小时前
幻境寻踪:Rokid AR眼镜上的沉浸式解谜冒险游戏开发实战
后端·ar·restful·沉浸式体验·ar游戏开发·rokid眼镜·解谜游戏
8***f3951 小时前
工作中常用springboot启动后执行的方法
java·spring boot·后端
Cisyam1 小时前
openGauss + LangChain Agent实战:从自然语言到SQL的智能数据分析助手
后端
BBB努力学习程序设计1 小时前
Python错误处理艺术:从崩溃到优雅恢复的蜕变
python·pycharm
我叫黑大帅1 小时前
什么叫可迭代对象?为什么要用它?
前端·后端·python