首页 > 其他分享 >记录pyinstaller打包django项目遇到的坑

记录pyinstaller打包django项目遇到的坑

时间:2024-06-20 16:43:20浏览次数:21  
标签:exe pyinstaller manage django xx spec 打包

由于工作需要,需要在内网部署一个Django项目生成exe,打包过程遇到了不少坑,在此记录一下。

一、安装pyinstaller

略。

二、打包exe

第一个问题:用pyinstaller -F -w生成的exe报错

一开始用的是以下命令生成exe:

pyinstaller -F -w xx.py

导出完毕后,在dist/manage/目录下输入

manage.exe runserver

尝试运行,报错:

RuntimeError: Script runserver does not exist.
[9392] Failed to execute script 'manage' due to unhandled exception!

解决方式是在后面追加--noreload,即

manage.exe runserver --noreload

该问题解决

第二个问题:服务启动时又报另一个错:

No module named XXX

这是因为pyinstaller打包时不会将所有的模块一并打包,会有遗漏。解决方式有两种,一种是在生成exe的时候在后面追加--hidden_import,这种方法有点麻烦,所以我用了第二种方法,先生成spec文件:

pyi-makespec -D xx.py

运行后在项目目录下出现xx.spec文件,然后在xx.spec里面修改hidden_import字段:

hiddenimports=["generate.apps", "openpyxl.cell._writer"]

修改后用下面的命令生成exe:

pyinstaller manage.spec

 该问题解决

第三个问题:打开网页就会报TemplateDoesNotExist,找不到页面

解决方式是把templates和static这两个存html和css的目录拷贝到报错的位置,问题解决。

 

标签:exe,pyinstaller,manage,django,xx,spec,打包
From: https://www.cnblogs.com/wdl1078390625/p/18258967

相关文章