Django项目打包的步骤以及可能出现的问题

在anaconda虚拟环境下打包失败了,切换到系统python下pipenv打包成功了。
打包成exe
若想要打包的项目为单独的py文件,则使用 pyinstaller-F xxx.py
’打包
若想要打包的项目为一个的文件夹,则使用 pyi-makespec -D manage.py
生成spec文件,执行成功后,会显示如下信息,表示可以去构建可执行文件了
在目录下面会生成一个 manage.spec的文件。
然后运行 pyinstaller manage.spec
命令,生成打包的exe文件
打包程序的运行方式: 在manage.exe的位置打开cmd,输入
1 | manage runserver ip:port --noreload |
运行服务即可
新建直接运行的程序
新建一个run.py文件
1 | import os |
pyinstaller -F run.py
在dist目录下得到一个run.exe,双击运行run.exe 就能运行django项目。
问题
1 运行服务是会提示No module named XXX
这是因为Django有些module不会自动收集,需要手动添加
解决方法:在manage.spec文件中修改
1 | hiddenimports=['django', 'users','users.apps'.........] |
提示缺少什么module就在此处添加什么。(但是很恶心人的是每次只会提示一个错误,需要一直修改manage.spec文件,然后重新打包)
2 打开网页出现TemplateDoesNotExist 错误
解决方法:.spec文件添加datas配置
3:Failed to execute script manage
- pyinstaller 打包后运行manager.exe runserver 出现以下问题:
1
2
3
4
5
6
7
8
9
10
11File "django\utils\ [ autoreload.py
](https://link.zhihu.com/?target=http%3A//autoreload.py/) ", line 256, in
restart_with_reloader
File "django\utils\ [ autoreload.py
](https://link.zhihu.com/?target=http%3A//autoreload.py/) ", line 243, in
get_child_arguments
RuntimeError: Script runserver does not exist.
[7964] Failed to execute script manage
解决方案:
运行时加–noreload 开关,即:
1 | manage.exe runserver 8000 --noreload |
自定义的filter需要手动添加
1 | hiddenimports=[ |
添加.bat
Windows下直接运行bat
xxx.bat写入
1 | manage.exe runserver 8000 --noreload |
- 本文标题:Django项目打包的步骤以及可能出现的问题
- 创建时间:2022-06-20 10:00:12
- 本文链接:2022/06/20/综合技术/Django项目打包的步骤以及可能出现的问题/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!