pyinstaller打包django项目成exe以及遇到的一些问题
1. 环境
环境为:win7 + Python3.6 + Django (2.1.10) + PyInstaller (3.5)
注意: 这里的PyInstaller,笔者是直接使用pip安装,中间会安装一些其他的插件
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')
然后运行如下命令,生成打包的exe文件
pyinstaller manage.spec
打包程序的运行方式: 在manage.exe的位置打开cmd,输入manage.exe runserver运行服务即可
到此就是打包程序的步骤,但是运行服务时会出现一些问题,对于笔者遇到的问题就在下面描述一下
问题一: 运行服务是会提示No module named XXX
这是因为Django有些module不会自动收集,需要手动添加
解决方法:在manage.spec文件中修改hiddenimports=[]为hiddenimports=['users','users.apps','sql_server.pyodbc.compiler'],提示缺少什么module就在此处添加什么。(但是很恶心人的是每次只会提示一个错误,需要一直修改manage.spec文件,然后重新打包,笔者在这里打包了十几次才算完成,具体还是看个人的情况)
问题二:打开网页出现TemplateDoesNotExist 错误
解决方法:根据错误的提示消息,把项目中的模板文件templates拷贝到相应的位置,刷新页面即可。
问题三:网页丢失CSS、JS
参考的stackoverflow 网址:https://github.com/pyinstaller/pyinstaller/issues/2368
首先在项目中的settings文件中添加如下代码,其中static是笔者项目中的静态文件位置,static_root是static下的一个空文件夹,然后执行python manage.py collectstatic命令将静态文件收录到static_root中:
STATIC_ROOT = os.path.join(BASE_DIR, 'static', 'static_root')
然后在urls.py中添加如下代码:
from django.conf.urls import static
from project_1 import settings urlpatterns += static.static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
pyinstaller打包django项目成exe以及遇到的一些问题的更多相关文章
- 【Python】 如何用pyinstaller打包python程序成exe
[pyinstaller] pyinstaller在他们的官方网站上下载:http://www.pyinstaller.org/ 下载完pyinstaller之后还要安装一个支持包pywin32. 这 ...
- PyInstaller 打包 python程序成exe
pychaim下PyInstaller 打包 python程序 主题是使用PyInstaller 打包python时遇到一些问题以及解决方案,其中将要打包的程序是用tensorflow做的LSTM算法 ...
- pyinstaller打包py文件成exe文件时,出现ImportError: No module named 'pefile'错误解决办法!
首先pyinstaller的安装与使用详见如下链接: 安装完成之后,命令行中输入pyinstaller之后,结果如下: ImportError: No module named 'pefile' 缺少 ...
- pyinstaller打包python文件成exe(原理.安装.问题)
py文件打包成exe文件的方式一共有三种:py2exe.PyInstaller和cx_Freeze 本文分四个步骤来详讲如何用PyInstaller将py文件打包成exe文件 1. PyInstall ...
- pyinstaller打包Django项目
系统:ubuntu18.04 / Centos 7自带Python3.61.安装pip3 apt-get install -y python3-pip pip3 install --u ...
- Pyinstaller打包django
偶有特殊要求可能需要将django程序打包成exe可执行文件,方便在电脑直接点击运行.这里用的是打包python代码的常用库Pyinstaller. 虽然用Pyinstaller支持打包Django, ...
- pyinstaller打包.py程序为.exe操作指南
pyinstaller打包.py程序为.exe操作指南 20190526内容纲要: 1.pyinstaller安装 2.程序封装 3.可执行程序 0 前言 今天第一次试试将一个py程序封装成一个.ex ...
- Pyinstaller打包Selenium脚本为exe文件执行问题
由于同事辞职,许多运维工具的维护工作就交到我这里处理了,运维居然没人会Python脚本! 用Selenium编写的一个爬虫脚本cctv.py,需要给不懂软件的人运行.为了不让他去搭建,安装各种包,库, ...
- 如何使用pyinstaller打包32位的exe
说明:原来安装的python为64位,故安装的pyinstaller和打包后的exe都为64位.而64位的exe文件在32位的win7操作系统下是无法执行的,显示不兼容.网上查询发现,简单(可能不方便 ...
随机推荐
- Intel FPGA 专用时钟引脚是否可以用作普通输入,输出或双向IO使用?
原创 by DeeZeng FPGA 的 CLK pin 是否可以用作普通输入 ,输出或双向IO 使用? 这些专用Clock input pin 是否可以当作 inout用,需要看FPGA是否支 ...
- springboot序
springboot序 1.写在前面 (1) 前段时间把文章分了下类(说的是专栏,谈不上),分了三类:springboot.springcloud.mpp数据库greenplum,后来给springc ...
- 开源项目托管到GitHub上
前提是安装了git客户端 1.进入你的GitHub账户 2.点击new repositories 创建一个新的项目 输入项目名和项目描述 3.复制该项目的https路径 4.找一个文件夹来存放 ...
- vue项目目录结构详解
项目简介基于 vue.js 的前端开发环境,用于前后端分离后的单页应用开发,可以在开发时使用 ES Next.scss 等最新语言特性.项目包含: 基础库: vue.js.vue-router.vue ...
- css常用语法续集
1 设置字体 body{font-familly:“宋体”} 2 可以使用下面代码设置网页中文字的字号为12像素,并把字体颜色设置为#666(灰色): body{font-size:12px;c ...
- java的System.currentTimeMillis()和System.nanoTime
纳秒 ns(nanosecond):纳秒, 时间单位.一秒的10亿分之一,即等于10的负9次方秒.常用作 内存读写速度的单位,其前面数字越小则表示速度越快. 1纳秒=1000 皮秒 1纳秒 = ...
- Hadoop自学系列集(一) ---- 使用VMware安装CentOS
1.概述 笔者的学习环境--在VMware虚拟机下安装四个CentOS系统(搭建Hadoop集群用),其中一个为Master,三个为Slave,Master作为Hadoop集群中的NameNode, ...
- Nginx 的简单使用 (IIS,Asp.Net)
Nginx 的一些常见功能(windows,AspNet ,IIS) 下载 官方网站:https://nginx.org/en/download.html 下载,解压缩是这个样子 启动: 启动方式有两 ...
- Linux下安装配置Jmeter5.1,并执行jmx文件
Windows下的jmeter是GUI模式,可查看操作,但是GUI对性能的干扰比较大,所有一般压测会在Linux上运行. 下面是Linux下安装配置Jmeter5.1,并执行jmx文件的步骤, 一.安 ...
- Cell Phone Networ (树形dp-最小支配集)
目录 Cell Phone Networ (树形dp-最小支配集) 题意 思路 题解 Cell Phone Networ (树形dp-最小支配集) Farmer John has decided to ...