前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pyinstaller打包exe应用程序【乘法计算过程演示】

pyinstaller打包exe应用程序【乘法计算过程演示】

作者头像
Michael阿明
发布2023-08-09 20:18:43
1410
发布2023-08-09 20:18:43
举报

1. 环境准备

  • upx:压缩安装包的大小 https://github.com/upx/upx 下载后放在 D:\path\Anaconda3\envs\<pkg>\Scripts\ 打包的时候会看到:
在这里插入图片描述
在这里插入图片描述
  • 新建一个干净的环境,只安装项目必须的包,减少打包的大小
  • pip install pyinstaller
  • 自己编写的import代码文件需要放在 D:\path\Anaconda3\envs\<pkg>\Lib\site-packages

2. 路径写法

代码内所有的资源路径需要调用以下函数获取,防止打包的时候找不到

代码语言:javascript
复制
# 生成资源文件目录访问路径
def resource_path(relative_path):
    if getattr(sys, 'frozen', False):  # 判断sys中是否存在frozen变量,即是否是打包程序
        base_path = sys._MEIPASS  # sys._MEIPASS在一些编辑器中会报错,不用理会
    else:
        base_path = os.path.abspath(".")
    return os.path.join(base_path, relative_path)

参考:https://blog.csdn.net/tm_yuyue/article/details/130472040

3. 打包

激活虚拟环境,执行打包

代码语言:javascript
复制
Pyinstaller -F -w -i xlogo.ico main.py
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

几百行代码,打包后是30M,还是比较大

  • 打开exe后发现图片等资源没打包进去,编辑main.spec文件 修改pathex=[r'D:\gitcode\Python_learning\qt\multiply_show']项目路径 修改datas=[('xlogo.ico', './'), ('qrcode_for_michael.jpg', './') ] 元组内容是(文件相对路径,文件的目录)
代码语言:javascript
复制
# -*- mode: python ; coding: utf-8 -*-


block_cipher = None


a = Analysis(
    ['main.py'],
    pathex=[r'D:\gitcode\Python_learning\qt\multiply_show'],
    binaries=[],
    datas=[('xlogo.ico', './'),
        ('qrcode_for_michael.jpg', './')
    ],
    hiddenimports=[],
    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)

exe = EXE(
    pyz,
    a.scripts,
    a.binaries,
    a.zipfiles,
    a.datas,
    [],
    name='main',
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    upx_exclude=[],
    runtime_tmpdir=None,
    console=False,
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
    icon=['xlogo.ico'],
)

再执行 pyinstaller main.spec

在这里插入图片描述
在这里插入图片描述

这是第一个打包制作的电脑小程序,记录一下。

程序下载github地址 https://github.com/kobe24o/multiplication_calculation/releases

程序演示视频:

使用python的turtle包进行乘法动画演示

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 环境准备
    • 2. 路径写法
      • 3. 打包
      相关产品与服务
      云开发 CloudBase
      云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档