django可以生成exe文件吗_Django框架14 /pyinstaller打包django项目成exe文件

本文介绍了如何在Windows环境下,利用PyInstaller将Django项目打包成exe可执行文件。通过创建.spec文件,手动添加缺失模块,解决模板错误和静态文件问题,最终成功运行打包后的exe。
摘要由CSDN通过智能技术生成

Django框架14 /pyinstaller打包django项目成exe文件

1、环境

环境

win10 + Python3.6 + Django (2.1.10) + PyInstaller (3.5)

PyInstaller安装

# 方式一:在线安装

pip install pyinstaller

# 方式二:离线安装 PYPI下载离线包

future-0.18.2.tar.gz

pefile-2019.4.18.tar.gz

altgraph-0.17-py2.py3-none-any.whl

pywin32_ctypes-0.2.0-py2.py3-none-any.whl

pyinstaller-4.0.tar.gz

2、制作项目的.spec文件

进入到项目的所在的路径中,执行如下命令生成 .spec文件,文件位于当前路径下

pyi-makespec -D manage.py

manage.spec文件 示例

# -*- mode: python ; coding: utf-8 -*-

block_cipher = None

a = Analysis(['manage.py'],

pathex=['F:\\Work\\Code\\project_1'],

binaries=[],

datas=[],

hiddenimports=[],

hookspath=[],

runtime_hooks=[],

excludes=[],

win_no_prefer_redirects=False,

win_private_assemblies=False,

cipher=block_cipher,

noarchive=False)

pyz = PYZ(a.pure, a.zipped_data,

cipher=block_cipher)

exe = EXE(pyz,

a.scripts,

[],

exclude_binaries=True,

name='manage',

debug=False,

bootloader_ignore_signals=False,

strip=False,

upx=True,

console=True )

coll = COLLECT(exe,

a.binaries,

a.zipfiles,

a.datas,

strip=False,

upx=True,

upx_exclude=[],

name='manage')

3、生成exe文件

运行如下命令,生成打包的exe文件

pyinstaller manage.spec

打包程序的运行方式

# 在manage.exe的位置打开cmd,输入如下命令,运行服务即可

manage.exe runserver

4、总结

问题1:运行服务是会提示No module named XXX

这是因为Django有些module不会自动收集,需要手动添加

解决方法:在manage.spec文件中修改hiddenimports=[]为hiddenimports=['users','users.apps','sql_server.pyodbc.compiler'],提示缺少什么module就在此处添加什么。

问题2:打开网页出现TemplateDoesNotExist 错误

解决方法:根据错误的提示消息,把项目中的模板文件templates拷贝到相应的位置,刷新页面即可。

问题3:网页丢失CSS、JS

1、首先在项目中的settings文件中添加如下代码,其中static是项目中的静态文件位置,static_root是static下的一个空文件夹,然后执行python manage.py collectstatic命令将静态文件收录到static_root中

STATIC_ROOT = os.path.join(BASE_DIR, 'static', 'static_root')

2、然后在urls.py中添加如下代码:

from django.conf.urls import static

from project_1 import settings

urlpatterns += static.static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值