功能背景

我把自动化校准程序写好后,可以在 Pycharm 中运行 Django 程序。但是,这个程序最终要给检定员用的,我不可能在每个检定员的电脑上安装 Django 编程环境让他们使用。所以,要把 Django 打包成 exe 文件,在检定员们的电脑上直接运行exe 文件。

网上搜索了一番之后,最终考虑用 Pyinstaller 工具打包,但是 Pyinstaller 并不能直接给 Django 程序打包。而是要有一些特定的配置。

Django程序大体的打包步骤,看这2篇文章即可(2篇文章内容基本一样)。

另外需要补充的是:

1. setuptools 模块降级

按照以上2篇文章中的步骤,我在运行到 manage.exe runserver 这个步骤时,报的第一个错误是: No module named 'pkg_resources.py2_warn' Failed to execute script pyi_rth_pkgres 这个缺失的模块,并不是需要在 hiddenimports 列表中增加的,而是模块 setuptools 的问题。把 setuptools 模块降低到 44.0.0 及以下版本,即可解决此问题。

pip install setuptools==44.0.0 # 安装指定版本的模块,同时会卸载掉旧的模块

setuptools模块降级的这一步骤,要在执行所有的打包步骤之前进行。 如果在manage.exe runserver 执行后发现这一错误,而此时已经进行过打包步骤,则需要在把 setuptools 降级之后,删除之前打包操作生成的所有文件,再重新执行一遍打包步骤。

2. hiddenimports 列表的处理

执行manage.exe runserver 报错缺少模块时,我当前的自动化程序,只报缺少 test_process.apps 这一个模块。此时,hiddenimports=['test_process.apps'], 就可以了。

注意,报错信息中模块的名称是什么,就把这个名称的字符串,加到hiddenimports列表中。缺几个模块,就添加几个模块。

增加完 hiddenimports 后,不能直接运行 exe 文件,需要执行 pyinstaller manage.spec 重新打包。

如果已经进行过之前的打包步骤,生成了包文件,则必须删除之前打包操作生成的所有文件,再重新执行修改后的manage.spec文件, pyinstaller manage.spec,生成exe 文件后再执行。

3. 创建一个 exe 可执行文件,来运行 manage.exe runserver 命令

在虚拟环境的 cmd 中运行 manage.exe runserver 后,此时可以在 Chrome 中正常运行校准程序了。但是,总不能让检定员们创建一个虚拟程序,然后敲入manage.exe runserver命令吧。比较好的方案应该是让检定员直接运行一个 exe。

我的思路是,再建立一个 .py 文件,在这 .py 文件中,执行 manage.exe runserver 命令,实现打开服务器的功能。用 Pyinstaller 把这个 .py 文件打包成 autotest.exe ,把 autotest.exe 放到 manage.exe 同一个文件夹中。检定员们实际使用到的就是这个 autotest.exe。点击 autotest.exe 之后,即相当于运行服务器。

autotest.exe 文件:

import os

os.system('manage.exe runserver')

input()

此外,打包时,可能还需要考虑电脑操作系统的环境,是 64 位还是 32 位,win7 还是 win10,最好在同一配置的电脑上打包,然后给相同配置的电脑使用。

django可以生成exe文件吗_把 Django 程序打包为 exe 可执行文件相关推荐

  1. Pyinstaller将Python程序打包成EXE(多种模式的打包)

    Pyinstaller将Python程序打包成EXE 文章目录 Pyinstaller将Python程序打包成EXE 安装 安装 pip install pyinstaller 博文已经迁移到个人主页 ...

  2. 使用installanywhere打包java文件生成任何平台都可以运行的程序(如.exe)(关闭360!)

    InstallAnywhere使用与下载 (2011-07-05 18:30:36) 转载▼ 标签: install anywhere 安装文件 安装目录 软件解决方案 安装包 it 分类: Java ...

  3. 用 Pyinstaller 模块将 Python 程序打包成 exe 文件(全网最全面最详细)

    目录 打包前置知识 一.什么是exe可执行文件? 二.为什么要将 Python 程序打包为 exe 可执行文件? 三.为什么 Python 程序不能直接运行呢? 四.我们用什么来打包 Python 文 ...

  4. 如何把一个java程序打包成exe文件,运行在没有java虚

    如何把一个java程序打包成exe文件,运行在没有java虚 核心提示:首先,将编译好的程序打包成jar文件,然后做出exe,这样代码就不可见了:但是exe文件在没有安装jre的电脑上不能运行,如果要 ...

  5. java swing桌面程序打包成.exe文件

    公司需要做一些数据,图片处理的小程序,所以就学了学swing,吐槽一下 现在的swing的资料真的少..基本不用这个做了. 下面的文章是介绍如何将自己编写的swing应用程序打包为.exe的可执行程序 ...

  6. python实现音乐定时开关,模拟上下课铃声(含程序打包微小exe文件方法介绍)

    本文分两部分,先介绍python实现模拟上下课定时铃声播放与关闭,再讲python程序打包成小型exe文件. 一.python实现模拟上下课定时铃声播放与关闭 不说废话,完整代码奉上. import ...

  7. mac python3打包成窗体程序_使用pyinstaller将python程序打包成exe/苹果软件的方法与异常解决 - pytorch中文网...

    一.安装pyinstaller 通过清华镜像安装比较快 # 二者选其一执行,第二条快 pip3 installer pyinstaller # 清华镜像安装 # pip3 install -i htt ...

  8. 本文一步一步地教你如何将Python程序打包成exe文件—赶紧进来学习吧

    [先来看看几个问题] 一.什么是exe可执行文件? exe文件英文全名是executable file,翻译为可执行文件(但它不等于可执行文件),可执行文件包含两种,文件扩展名为.exe的是其中的一种 ...

  9. Java桌面程序打包成exe可执行文件

    前言: 我们都知道Java可以将二进制程序打包成可执行jar文件,双击这个jar和双击exe效果是一样一样的,但感觉还是不同.其实将java程序打包成exe也需要这个可执行jar文件. 准备: ecl ...

最新文章

  1. 智源论坛报名 | 智能信息检索与挖掘报告会(9月17日)
  2. Spark之数据倾斜 --采样分而治之解决方案
  3. 如何在matlab数组中添加新元素
  4. php 调用变量方法名,php中引用(变量和函数名前加符号)用法
  5. python变量初始化_tensorflow之变量初始化(tf.Variable)使用详解
  6. Eclipse文件夹导入Jar
  7. 除了中国,原来还有这么多国家采用十二生肖的啊~| 今日最佳
  8. Spring开发--Bean配置实例讲解
  9. Docker : Docker创建自定义网桥
  10. python3 rrdtool 使用
  11. JVM、JRE、JDK、java ee sdk with jdk四者的区别
  12. linux php gmagick,Linux下编译安装GraphicsMagick及PHP扩展gmagick
  13. AAtitit 项目管理 提升开发效率的项目流程方法模型 哑铃型  橄榄型 直板型titi
  14. Mac下一款好用的UML图绘制工具(StarUML)
  15. mac整站下载工具httrack
  16. 输出101到200的素数python_python 判断101-200之间有多少个素数,并输出所有素数。...
  17. HTB靶机01-Blue-WriteUp
  18. 域名.com是什么意思?和cn域名有什么区别?
  19. At least one JAR was scanned for TLDs yet contained no TLDs.
  20. 5T的资源大礼包整合,总有你想要的!

热门文章

  1. 三组关键词,拆解2021年赤子城的中期业绩报告
  2. 远程访问mysql数据库_关于远程连接MySQL数据库的问题解决
  3. vue怎么截取时间年月_Vue + Element 获取标准时间、时间戳进行转换与操作(年月日)...
  4. java通过maven构建项目实现日志生成模拟(一)创建maven项目+安装配置Fastjson.jar和Logback.jar 和 slf4j.jar
  5. 汇编小程序---计算十以内两个数的相加
  6. Python动态类和动态方法的创建和调用
  7. Python基础教程:return函数的用法
  8. Python 字符串转义序列及格式化
  9. 用Python 给你的个人微信朋友圈数据生成一本电子书吧!
  10. linux按键驱动中的结构体,linux 驱动之input子系统(gpio-keys)实现