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以及遇到的一些问题的更多相关文章

  1. 【Python】 如何用pyinstaller打包python程序成exe

    [pyinstaller] pyinstaller在他们的官方网站上下载:http://www.pyinstaller.org/ 下载完pyinstaller之后还要安装一个支持包pywin32. 这 ...

  2. PyInstaller 打包 python程序成exe

    pychaim下PyInstaller 打包 python程序 主题是使用PyInstaller 打包python时遇到一些问题以及解决方案,其中将要打包的程序是用tensorflow做的LSTM算法 ...

  3. pyinstaller打包py文件成exe文件时,出现ImportError: No module named 'pefile'错误解决办法!

    首先pyinstaller的安装与使用详见如下链接: 安装完成之后,命令行中输入pyinstaller之后,结果如下: ImportError: No module named 'pefile' 缺少 ...

  4. pyinstaller打包python文件成exe(原理.安装.问题)

    py文件打包成exe文件的方式一共有三种:py2exe.PyInstaller和cx_Freeze 本文分四个步骤来详讲如何用PyInstaller将py文件打包成exe文件 1. PyInstall ...

  5. pyinstaller打包Django项目

    系统:ubuntu18.04 / Centos 7自带Python3.61.安装pip3     apt-get install -y python3-pip     pip3 install --u ...

  6. Pyinstaller打包django

    偶有特殊要求可能需要将django程序打包成exe可执行文件,方便在电脑直接点击运行.这里用的是打包python代码的常用库Pyinstaller. 虽然用Pyinstaller支持打包Django, ...

  7. pyinstaller打包.py程序为.exe操作指南

    pyinstaller打包.py程序为.exe操作指南 20190526内容纲要: 1.pyinstaller安装 2.程序封装 3.可执行程序 0 前言 今天第一次试试将一个py程序封装成一个.ex ...

  8. Pyinstaller打包Selenium脚本为exe文件执行问题

    由于同事辞职,许多运维工具的维护工作就交到我这里处理了,运维居然没人会Python脚本! 用Selenium编写的一个爬虫脚本cctv.py,需要给不懂软件的人运行.为了不让他去搭建,安装各种包,库, ...

  9. 如何使用pyinstaller打包32位的exe

    说明:原来安装的python为64位,故安装的pyinstaller和打包后的exe都为64位.而64位的exe文件在32位的win7操作系统下是无法执行的,显示不兼容.网上查询发现,简单(可能不方便 ...

随机推荐

  1. c++小游戏——俄罗斯方块

    #include<cstdio> #include<windows.h> #include<ctime> int a[24][17],i,j,tim=800,ti= ...

  2. MyBatis框架之SQL映射和动态SQL

    使用MyBatis实现条件查询 1.SQL映射文件: MyBatis真正的强大之处就在于SQL映射语句,MyBatis专注于SQL,对于开发人员来说也是极大限度的进行SQL调优,以保证性能.下面是SQ ...

  3. Keil debug command SAVE 命令保存文件的解析

    简介 使用 Keil debug 很方便,把内存中的一段区域 dump 出来也很方便,例如使用命令 SAVE filepath startAddr, endAddr, typeCode .但是要查看 ...

  4. Docker部署web环境之Lanmp

    1. 案例一 整套项目多容器分离通过docker-compose部署lanmp环境 中方文档参考网址: docker/kubernets网址 http://www.dockerinfo.net/doc ...

  5. Python基础之str常用方法、for循环

    初学python,有些地方可能还不够明白,希望各位看官发现我的错误后留言指正! 一.字符串的索引与切片 注:字符串的第一位的索引值是0 1.索引案例 s = 'abcd' s1 = s[0] prin ...

  6. linux初学者-网络桥接篇

    linux初学者-网络桥接篇 在网络的使用中,有时需要搭建网络桥来实现网络桥接.例如在一台主机上制作一台虚拟机,虚拟机是没有物理网卡的,这时虚拟机数据的发送和接收就需要通过主机上的物理网卡,需要主机的 ...

  7. Helm 3 使用 harbor 作为仓库存储 charts

    简介 本文讲述的是调教 Helm 3 和 harbor 1.6+ 的经验,从 helm2 更新到 helm 3 并且将 charts 推送到 harbor 中进行存储,移除了原先的 helm serv ...

  8. python下载报错:Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问

    更新pip模块的版本:python -m pip install --upgrade pip 但是遇到报错提示: Could not install packages due to an Enviro ...

  9. Django的性能优化

    Django的性能优化   一,利用标准数据库优化技术 传统数据库优化技术博大精深,不同的数据库有不同的优化技巧,但重心还是有规则的.在这里算是题外话,挑两点通用的说说: 索引,给关键的字段添加索引, ...

  10. 执行shell脚本的四种方式

    这篇文章主要介绍了Linux中执行shell脚本的4种方法,即总结在Linux中运行shell脚本的4种方法. 前提:bash shell 脚本的方法有多种,假设我们编写好的shell脚本的文件名为h ...