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

相关推荐
SunnyDays10111 分钟前
使用 Python 将 PDF 转换为 HTML:完整指南
python·pdf 转 html
SmallBambooCode3 分钟前
【人工智能】【Python】离线环境下huggingface预训练权重导入流程
开发语言·人工智能·python
神明9313 分钟前
React 中父组件向子组件传递函数的正确调用方式
jvm·数据库·python
wang3zc6 分钟前
TensorFlow如何进行张量维度重塑_使用tf.reshape或tf.expand_dims
jvm·数据库·python
2501_9012005312 分钟前
mysql如何检查数据库表是否存在损坏_使用CHECK TABLE命令修复
jvm·数据库·python
2301_7662834413 分钟前
如何设置密码复杂度策略以约束MongoDB用户的密码强度
jvm·数据库·python
duke86926721414 分钟前
Golang怎么安全关闭channel_Golang channel关闭教程【通俗】
jvm·数据库·python
2301_7662834415 分钟前
uni-app iOS后台运行 uni-app App如何实现后台定位或音乐播放
jvm·数据库·python
m0_5967490915 分钟前
如何清除SQL表中的缓存垃圾_通过TRUNCATE重置表状态
jvm·数据库·python
m0_5913647315 分钟前
如何从Oracle Java调用外部API_HTTP请求在数据库Java Source中的实现
jvm·数据库·python