Django2.0打包生成exe添加配置ini文件,在win10或7环境开机自启动

本文介绍了如何将Django2.0项目打包为exe文件,并在Windows环境下设置开机自启动。包括使用pyinstaller创建.spec文件,处理缺少模块的问题,创建bat和vbs文件以实现自动运行及隐藏命令窗口,最后将vbs文件放入启动目录实现开机启动。

前言

该文章是本人在实际项目中遇到的各种问题,供大家参考。

  1. 包含了如何将django项目打包生成exe可执行文件。
  2. 如何将该exe不在命令行使用如: manage.exe runserver,而是用bat代替
  3. 最后想开机自动启动bat文件,用.vbs文件放入电脑开机自启动环境。
  4. 该文章是本人第一次在csdn上写,若有错误,请大家留言我会一一回复,感谢.
  5. 因为是公司项目文件所以不上传到github,抱歉
  6. 本人参考文献
  7. django打包exe
  8. exe文件开机自启动

配置环境

首先需要使用python安装pyinstaller
这里推荐先新建一个虚拟环境,这样生成的exe文件可以尽可能的小一些

pip install pyinstaller
pip install django==2.0.0

在这里插入图片描述

然后再安装你项目需要用到py库。最后本人实在python的虚拟环境中创建exe(库不多)所以文件可以显得较为小

添加可配置文件

新建一个ini文件
在这里插入图片描述

注意格式与注意,内容都为字符串

安装configparser包

在这里插入图片描述

pip install configparser

使用方式说明

import configparser

cf = configparser.ConfigParser()
cf.read('C:/Bioecare/mobile_version/config.ini')

secs = cf.sections()

print(secs)  # ['Mysql', 'Mqtt', 'Static']

options = cf.options('Mysql')

print(options)  # ['mysql_name', 'mysql_user', 'mysql_password', 'mysql_host', 'mysql_port']

items = cf.items('Mysql')

print(items)  # [('mysql_name', 'mobile_version_1'), ('mysql_user', 'root'), ('mysql_password', 'ct980218'), ('mysql_host', 'localhost'), ('mysql_port', '3306')]

mysql_dict = dict(items)
print(mysql_dict['mysql_name'])  # mobile_version_1
print(type(mysql_dict['mysql_name']))
print(type(mysql_dict['mysql_port']))

若内容需要为int类型或者bool类型可以参考我的方案

import configparser

cf = configparser.ConfigParser()
cf.read('C:/Bioecare/mobile_version/config.ini')

MYSQL_ITEMS = cf.items('Mysql')

MYSQL_DICT = dict(MYSQL_ITEMS)

MYSQL_NAME = MYSQL_DICT['mysql_name']
MYSQL_USER = MYSQL_DICT['mysql_user']
MYSQL_PASSWORD = MYSQL_DICT['mysql_password']
MYSQL_HOST = MYSQL_DICT['mysql_host']
MYSQL_PORT = MYSQL_DICT['mysql_port']

SETTING_ITEMS = cf.items('Setting')

SETTING_DICT = dict(SETTING_ITEMS)

SETTING_STATIC_ROOT = SETTING_DICT['static_root']
SETTING_DEBUG = SETTING_DICT['debug']

b = bool(SETTING_DEBUG)

//  分割一下**************

import configparser

cf = configparser.ConfigParser()
cf.read('C:/Bioecare/mobile_version/config.ini')

MQTT_LIST = cf.items('Mqtt')
MQTT_DICT = dict(MQTT_LIST)

MQTT_HOST = MQTT_DICT['mqtt_host']
MQTT_PORT = int(MQTT_DICT['mqtt_port'])

这里建议写成绝对路径,否则打包过程中可能路径找不到

先生成.spec文件

在django的路径也就是含有manage.py文件的路径下
在这里插入图片描述

pyi-makespec -D manage.py

运行后会生成一个manage.spec文件
在这里插入图片描述

通常情况下,直接打包(你无法提前预知缺少的module)

直接执行以下语句

pyinstaller manage.spec

之后django项目文件夹下会多出disk文件夹和build文件夹,重要的exe信息在dist中
在这里插入图片描述

运行exe

运行首先要到dist中间中依次进入最后默认文件名manage.exe文件,双击无作用出现一系列提示,因为双击相当于运行python manage.py 但我们运行django需要python manage.py runserver 所以按住键盘shift在文件空白处按鼠标右键会出现在此处打开命令窗口.执行程序

在这里插入图片描述

manage,exe runerver

将会报错,ImportError: No module named admin。一般都是缺少module,之后可参考我上面前言中参考的文档进行修改
在.spec文件加需要的module。
在这里插入图片描述
经过本人多次打包django2.0发现一般

‘pkg_resources.py2_warn’

经常缺少!
在这里插入图片描述
然后删掉disk文件和build文件重新打包,不要删manage.spec!
在这里插入图片描述

重新

pyinstaller manage.spec

进入manage文件夹

manage,exe runerver
在这里插入图片描述

发现app的urls需要添加,因此我们提前将所有app的urls添加进入
在这里插入图片描述

在这里插入图片描述

重新打包。。。。

在这里插入图片描述

在这里插入图片描述

temperature没进入

将文件放入就好了
在这里插入图片描述

前言中的链接大致和其他博客类似,但有一篇博客用django1.11,具体有点遗忘,如创建ini文件等,本人尝试失败,告知下大家。前言发布链接为正解。

将exe文件写入bat

在exe文件夹下创建一个bat文件,如:manage.bat
写入内容

@echo off
cd C:\Users\win7_anywhere32\Desktop\111\manage
manage.exe runserver

@ echo off 双击运行.bat文件不显示manage.exe runserver这条命令
进入路径 在虚拟机中测试,所以文件名有点随意
运行指令 manage.exe runserver

注意: 该文件写成绝对路径形式, 本人一开始没加路径cd C:\Users\win7_anywhere32\Desktop\111\manage\相当于在一开始的路径中(按下win+r 输入cmd 一开始显示的路径)运行。若需写相对路径请大家自己寻找参考资料,本人目前找了很多,没有成功过。找到望联系本人,留言即可.

写.vbs文件

首先创建一个文件如 start.vbs文件
输入

CreateObject(“WScript.Shell”).Run"C:\Users\win7_anywhere32\Desktop\111\manage\manage.bat",0

注意大小写,不能错。 最后的0代表开机不会显示cmd窗口,若在测试阶段可改为1查看具体问题

放入win启动文件中

按下win+r , 输入

shell:startup

进入C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup文件夹下
将start.vbs文件放入。电脑重启查看。完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值