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

相关推荐
天选之子1232 分钟前
Django模板(二)
数据库·django·sqlite
weixin_580614004 分钟前
CSS如何制作下拉菜单弹性展开_利用transform-origin
jvm·数据库·python
tobias.b6 分钟前
Centos Linux 维护
linux·python·centos
m0_617881426 分钟前
如何配置Oracle WebLogic Server的JDBC数据源_JNDI查找与GridLink集群高可用连接池部署
jvm·数据库·python
weixin_458580127 分钟前
HTML函数能否用触控板高效编写_触控硬件操作体验评估【汇总】
jvm·数据库·python
weixin_381288188 分钟前
Vue.js生命周期destroyed钩子中内存泄漏排查与资源释放
jvm·数据库·python
2301_813599559 分钟前
C#怎么实现文件上传下载 C#如何用WebAPI实现大文件断点续传功能【网络】
jvm·数据库·python
m0_6742946410 分钟前
golang如何使用反射reflect_golang反射reflect使用教程
jvm·数据库·python
qq_3422958211 分钟前
mysql如何配置插件以提升查询性能_安装启用memcached插件
jvm·数据库·python
2401_8716965212 分钟前
c++如何实现简单的文件签名验证_HMAC-SHA1算法应用【进阶】
jvm·数据库·python