首页 > 编程语言 >Python制作排班小工具【四】

Python制作排班小工具【四】

时间:2023-12-07 12:03:10浏览次数:76  
标签:exe False Schedule Python GUI py 排班 制作

一、前言

前面我们已经编写好生成排班的所有代码,在PyCharm中能正常运行,可是未安装Python环境的同事无法运行,本文就来介绍如何将Python文件打包成Windows可运行的exe文件。

二、打包成exe

项目结构很简单,只有两个Py文件加一张GUI图标:

Python制作排班小工具【四】_ttkbootstrap

Step1:

1.在Python项目虚拟环境和系统环境安装pyinstaller

pip install pyinstaller

2.在Python系统环境安装使用到的第三方库:PyYAML、ttkbootstrap

pip install pyyaml

pip install ttkbootstrap

3.若安装较慢,可以将镜像源修改为国内的地址:

Python制作排班小工具【四】_Python_02

Step2:

1.在Python项目目录路径栏输入cmd,回车

Python制作排班小工具【四】_值班排班_03

2.在cmd命令终端输入:pyi-makespec -w GUI_scheduling.py

 GUI_scheduling.py是GUI主文件

参数-w:不打开console,-c:打开console

Python制作排班小工具【四】_Python_04

3.运行完成会在项目路径下生成GUI_scheduling.spec文件

Python制作排班小工具【四】_值班排班_05

Step3:

【关键】修改生成的spec文件

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

# 打包时可能出现大量的递归超出python预设的递归深度,报错:"RecursionError: maximum recursion depth exceeded",如下代码可解决
import sys
import os.path as osp
sys.setrecursionlimit(5000)
#----------------------------------------------------------------

block_cipher = None

# 项目路径
ROOT_DIR='D:\\Python Projects\\Working_Schedule\\'

# 1.以列表形式将项目中与打包文件相关的所有py文件写入Analysis
# 2.pathex:打包的主目录,默认生成,写入文件名即可
# 3.datas:资源文件或文件夹,以元组形式写入
# 4.hiddenimports:若打包后执行程序时出现"No Module named xxx",可以将xxx模块填入

a = Analysis(
    ['GUI_scheduling.py','Scheduling.py'],
    pathex=['D:\\Python Projects\\Working_Schedule\\'],
    binaries=[],
    datas=[],
    hiddenimports=['ttkbootstrap','yaml'],
    hookspath=[],
    hooksconfig={},
    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)

# 参数icon="具体路径",修改exe的logo
exe = EXE(
    pyz,
    a.scripts,
    [],
    exclude_binaries=True,
    name='Working_Schedule',
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    console=False,
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
	icon=ROOT_DIR+'icon.ico'
)
coll = COLLECT(
    exe,
    a.binaries,
    a.zipfiles,
    a.datas,
    strip=False,
    upx=True,
    upx_exclude=[],
    name='Working_Schedule',
)

Step4:

1.在项目目录下运行CMD,输入命令:pyinstaller GUI_scheduling.spec

Python制作排班小工具【四】_Python_06

2.打包完成后命令行如下图所示:

Python制作排班小工具【四】_工具开发_07

3.打包完成会在项目路径下生成dist和build文件夹,exe文件存放在dist文件夹中,build文件夹可以删除,保留dist中的Working_Schedule文件夹即可

Python制作排班小工具【四】_工具开发_08

Python制作排班小工具【四】_GUI_09

4.将Working_Schedule文件夹发给同事,exe运行效果如下图所示:

Python制作排班小工具【四】_值班排班_10

三、完整代码

Scheduling.py:

Python制作排班小工具【一】

GUI_scheduling.py 

Python制作排班小工具【二】

Python制作排班小工具【三】


标签:exe,False,Schedule,Python,GUI,py,排班,制作
From: https://blog.51cto.com/u_16379005/8719918

相关文章

  • python __new__ __init__
    classStudent():def__new__(cls,*args,**kwargs):##创建类的实例print('__new__')returnobject.__new__(cls)##此处返回才会调用__init__def__init__(self):##初始化类的实例print('__init__')classNewInt(int):def__new_......
  • [python]数据分析--数据清洗处理case1
    数据预处理案例1主要涉及pandas读取csv文件,缺失值和重复值处理,分组计数,字段类型转换,结果写入到Excel。根据要求对CSV数据集进行处理要求如下:保留数据关键信息:time、latitude、longtitude、depth、mag、region注意其中的region未直接提供,需要从数据集中的place中获取。......
  • Python绘制相关性热力图
    [Python绘制相关性热力图-知乎](https://zhuanlan.zhihu.com/p/364624304)随便一个数据就可importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltimportseabornassnsplt.rcParams['font.sans-serif']=['ArialUnicodeMS']#让中文的地方显示出来......
  • [Python急救站]回文数的判断
    回文数判断:回文数是指这个数颠倒后,与原数一致,如32223、12221等。第一个程序是由用户输入,并判断是否是回文数。a=eval(input("请输入一个五位数"))b=a//10000+a//1000%10*10+a//100%10*100+a//10%10*1000+a%10*10000ifa==b:print(......
  • Python计算两图相似性-基于互信息(Mutual Information)
    1、简介通过计算两个图片的互信息来表征他们之间的相似度,如果两张图片尺寸相同,还是能在一定程度上表征两张图片的相似性的。但是,大部分情况下图片的尺寸不相同,如果把两张图片尺寸调成相同的话,又会让原来很多的信息丢失,所以很难把握。经过实际验证,此种方法的确很难把握。 2、......
  • 【python】静态函数与类方法
    静态函数与类方法静态函数其实和类的方法没什么关系,它只是恰好定义在类的内部而已,所以这里我用函数(function)来形容它。它可以没有参数:classPerson:@staticmethod#用staticmethod这个修饰器来表明函数是静态的defsayHello():print('Hello')Person......
  • python--元组、列表、集合、字典、函数简单总结与区分
    元组:用“()”,不可修改其中的元素,有索引,tuple可建立一个元组。列表:用“【】”,可修改其中元素,有索引,可用list函数创建。集合:用“{}”,且{}相当于set()相当于set(【】),无序,无索引,可修改其中元素。字典:用”{}“,无索引,可修改其中元素,成对出现(区别于集合)。    例如:mynumber={"a":1,"b"......
  • Python脚本导入Excel文件可视化导出统计工时情况
    在当今快节奏的工作环境中,对员工工时的有效管理和分析变得至关重要。我开发了一个Python脚本,专门用于从Excel文件中导入工时数据,并将这些数据以直观的图表形式进行可视化展示。这一工具的目的是为了帮助企业和组织更好地理解和优化员工的工时分配,进而提升整体的工作效率和决策质......
  • python多线程下载图片
    urls.json文件数据格式如下["https://example.com/image1.jpg","https://example.com/image2.jpg","https://example.com/image3.jpg"] 代码如下importjsonimportrequestsimportthreadingdefdownload_image(url):respo......
  • python 中的 collections 模块:常用数据结构和工具详解
    Python的collections模块提供了许多有用的数据结构,超越了标准的内置数据类型。这些数据结构解决了各种常见的编程问题,包括但不限于高效的容器类型、特定目的的容器、默认值字典等。让我们深入了解其中的几个重要数据结构和工具。1.defaultdict:带有默认值的字典defaultdict是d......