Python制作排班小工具【四】
  MnuOoTXPgNLZ 2023年12月07日 28 0

一、前言

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

二、打包成exe

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

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

Step1:

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

pip install pyinstaller

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

pip install pyyaml

pip install ttkbootstrap

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

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

Step2:

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

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

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

 GUI_scheduling.py是GUI主文件

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

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

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

Python制作排班小工具【四】_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制作排班小工具【四】_值班排班_06

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

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

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

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

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

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

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

三、完整代码

Scheduling.py:

Python制作排班小工具【一】

GUI_scheduling.py 

Python制作排班小工具【二】

Python制作排班小工具【三】


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月07日 0

暂无评论

推荐阅读
MnuOoTXPgNLZ
最新推荐 更多