当前位置:主页 > python > python项目生成exe

python项目生成exe

xi2年前 (2023-04-04)python15120

前言

做了个python的小项目,需要打包为桌面端的exe使用,结果一打包,体积直接上百兆了,研究了下,使用虚拟环境打出的包会更干净小巧。

安装anaconda

  1. anaconda用作python的虚拟环境管理工具,下载地址:https://repo.anaconda.com/archive/Anaconda3-2023.03-Windows-x86_64.exe

  2. 配置anaconda环境变量
    win+i 搜索“高级系统设置”,打开

    点击环境变量

    双击系统变量中的Path

    依次添加系统环境变量(需视anaconda安装目录而定):
    D:\anaconda
    D:\anaconda\Library\mingw-w64\bin
    D:\anaconda\Library\usr\bin
    D:\anaconda\Library\bin
    D:\anaconda\Scripts

  3. 依次返回确定保存

创建anaconda虚拟环境

  1. 打开anaconda prompt

  2. 创建anaconda虚拟环境:conda create -n env_1 python==3.7.9(可自行选择版本)

  3. 验证是否创建成功:python -V

  4. 常用anaconda命令:
    导出虚拟环境的列表:conda env list
    导出当前环境的包:conda list
    启动/切换至名为name的Python环境:conda activate name
    退出虚拟环境:conda deactivate
    删除虚拟环境:conda remove -n 环境名 –all

  5. 在虚拟环境中安装python打包工具pyinstaller,以及其他自己在项目中使用到的包:
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller(国内使用清华源较快)

vscode选择python解释器

  1. 打开vscode,按下ctrl+shift+p

  2. 输入:Python: Select Interpreter,点击出现的选项

  3. 点击:输入解释器路径-查找

  4. 确认选中anaconda安装路径下刚生成的虚拟环境的python.exe文件

设置vscode默认终端为cmd

  1. 点击选择默认配置文件

  2. 点击选中Command Prompt

  3. 关闭vscode,重新使用vscode打开项目,按下shift+ctrl+` ,查看是否使用cmd切换为了虚拟环境

生成spec文件

  1. spec文件就是pyinstaller打包时的配置文件(语法为python语法),控制台输入命令:pyi-makespec -F -w main.py(main为生成的spec文件的文件名)

  2. 编辑spec文件

    # -*- mode: python ; coding: utf-8 -*-
    def getExeName(): # 获取名字与版本
     import config
     return config.name + '-' + config.version
    block_cipher = None
    a = Analysis(
     ['main.py'], # 需要打包的py文件
     pathex=[],
     binaries=[],
     datas=[],
     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=getExeName(), # 打包后的名字
     debug=False,
     bootloader_ignore_signals=False,
     strip=False,
     upx=True,
     upx_exclude=[],
     runtime_tmpdir=None,
     console=False, # 双击exe是否显示cmd窗口
     disable_windowed_traceback=False,
     argv_emulation=False,
     target_arch=None,
     codesign_identity=None,
     entitlements_file=None,
     icon='./img/icon.ico' # 打包的exe图标
    )

    Analysis第一个参数为列表,列表中元素为需要打包的py文件,可自行添加删除,EXE为打包的exe信息,可在此处修改exe的名字、图标等。图标必须为ico格式图片,这里提供一个图片格式转换网站:https://onlineconvertfree.com/zh/convert/svg/

利用spec配置打包

  1. spec文件编辑完成后输入命令:Pyinstaller main.spec(main.spec为刚才生成的配置文件名)

  2. 出现下图即为打包成功,在项目的根目录下会生成dist目录,里面即为打包出的exe文件:

转载请标注来源与原作者

本文链接:https://xiblogs.top/?id=57

“python项目生成exe” 的相关文章

修改python打包后的窗体图标、任务栏图标、exe图标

修改python打包后的窗体图标、任务栏图标、exe图标

前言 我python开发的GUI界面(图形用户界面)一直是tkinter,打包exe一直是Pyinstaller。但是打包出来的exe图标、状态栏图标、窗体左上角图标一直是默认的羽毛,我想自定义。效...

python将资源打包进exe

python将资源打包进exe

前言之前py打包的exe一直是不涉及图片等资源的,直到我引入图片后打包,再双击exe发现直接提示未找到资源。 分析我py代码中的图片引入使用的是项目相对路径,打包时pyinstaller只会引入py...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。