Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件

这篇具有很好参考价值的文章主要介绍了Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、pyinstaller的说明:

pyinstaller 能够在 Windows、Linux、Mac 等操作系统下将 Python 源文件打包,通过对源文件打包, Python 程序可以在没有安装 Python 的环境中运行,也可以作为一个独立文件方便传递和管理。

PyInstaller 支持 Python 2.7 和 Python 3.3+。可以在 Windows、Mac 和 Linux 上使用,但是并不是跨平台的,而是说要是希望打包成 .exe 文件,需要在Windows 系统上运行 PyInstaller 进行打包工作;打包成 Mac App,需要在 Mac OS 上使用,Linux 也一样,不能在一端上打另外两端的包,还有 Mac m1 的打包不能给 Mac intel 的使用,相反也一样,运行会报错:Error:Bad CPU type in executable。

pyinstaller 不需要自己写 setup.py 文件,只需要在工作目录中输入打包命令即可。最后会生成 build 和 dist 文件夹,启动文件在 dist 文件夹下。

2、pyinstaller的安装

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller

3、打包命令

pyinstaller [项目启动文件]

其他参数(按需求选择):

  • -F   表示在 dist 文件夹下只生成单个可执行文件(内部包含所有依赖),不加默认会在 dist 生成一大堆依赖文件+可执行文件。
  • -D   与 -F 相反用法
  • -w  表示去掉控制台窗口,如果你的程序是有界面的,可以不写这个参数。但是测试情况下建议先加上这个参数,因为如果打包不成功,运行时报错信息会在控制台上输出,没有控制台就看不到报错信息。
  • -c   表示去掉窗框,使用控制台
  • -p    表示自己定义需要加载的类路径,项目中包含多个自建模块的时候需要加上 -p aaa.py -p bbb.py -p ccc.py
  • -i     表示可执行文件的图标,后面跟图标的路径
  • --hidden-import  后面跟模块名如 queue,用于告诉打包程序某个模块我用不着你不用打包进去

3.1、将项目和代码打包多个文件的命令

windows下:

项目结构:

Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件

命令:

pyinstaller -D main.py -i ./sources/人工智能.ico -w

Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件

Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件

 新增的文件:Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件

 目标exe的可执行文件就在dist文件夹下:

Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件

 对上述生成的main.spec里的内容进行查看:

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


block_cipher = None


a = Analysis(
    ['main.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,
    [],
    exclude_binaries=True,
    name='main',
    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=['sources\\人工智能.ico'],
)
coll = COLLECT(
    exe,
    a.binaries,
    a.zipfiles,
    a.datas,
    strip=False,
    upx=True,
    upx_exclude=[],
    name='main',
)

下面是针对main.spec的说明:

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


block_cipher = None


a = Analysis(
    ['main.py'], 
    pathex=[], # 此列表为项目绝对路径
    binaries=[],
    datas=[],  # 此处可以添加静态资源,格式为('SOURCE_DIR/TO/YOUR_FILES_PATH','TARGET_DIR_PATH/')
    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,
    [],
    exclude_binaries=True,
    name='main', # 程序exe的名称
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True, # 打包的时候进行压缩,False表示不压缩
    console=False, #此处console=True表示,打包后的可执行文件双击运行时屏幕会出现一个cmd窗口,不影响原程序运行,如不需要执行窗口,改成False即可
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
    icon=['sources\\人工智能.ico'], #程序图标,要绝对路径,也可以不是相对路径
)
coll = COLLECT(
    exe,
    a.binaries,
    a.zipfiles,
    a.datas,
    strip=False,
    upx=True,
    upx_exclude=[],
    name='main', #程序文件夹名称
)

更改main.spec文件:

注意:要将源码复制到dist目录里,不然程序无法运行!!!

Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件

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


block_cipher = None


a = Analysis(
    ['main.py'],
    pathex=[], # 此列表为项目绝对路径
    binaries=[],
    datas=[('./src/','./src'),# 将源码输入进dist文件夹中,以保证程序正常运行
    ('./sources/','./sources/'), # 静态资源
    ('./source_dir/美女.png','./target_dir/')],# 此处可以添加静态资源,格式为('SOURCE_DIR/TO/YOUR_FILES_PATH','TARGET_DIR_PATH/')

    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,
    [],
    exclude_binaries=True,
    name='Speech演讲专用软件', # 程序exe的名称
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True, # 打包的时候进行压缩,False表示不压缩
    console=False, #此处console=True表示,打包后的可执行文件双击运行时屏幕会出现一个cmd窗口,不影响原程序运行,如不需要执行窗口,改成False即可
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
    icon=['sources\\人工智能.ico'], #程序图标,要绝对路径,也可以不是相对路径
)
coll = COLLECT(
    exe,
    a.binaries,
    a.zipfiles,
    a.datas,
    strip=False,
    upx=True,
    upx_exclude=[],
    name='WebBrowserSpeech', #程序文件夹名称
)

然后重新执行下面的命令:

pyinstaller main.spec

Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件

Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件

 结果变成下面的:

Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件

 Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件

运行结果:

Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件 

大功告成!!!

Mac下:

项目结构:

Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件

pyinstaller -D main.py -w -i ./sources/人工智能.icns

Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件

Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件新增的文件:

Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件 目标mac上的可执行文件就在dist文件夹下:

Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件

 更改main.spec文件:

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


block_cipher = None


a = Analysis(
    ['main.py'],
    pathex=[],
    binaries=[],
    datas=[('./source_dir/美女.png','./target_dir/')],
    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,
    [],
    exclude_binaries=True,
    name='Speech演讲专用软件',
    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=['sources/人工智能.icns'],
)
coll = COLLECT(
    exe,
    a.binaries,
    a.zipfiles,
    a.datas,
    strip=False,
    upx=True,
    upx_exclude=[],
    name='WebBrowserSpeech',
)
app = BUNDLE(
    coll,
    name='WebBrowserSpeech.app',
    icon='./sources/人工智能.icns',
    bundle_identifier=None,
)

然后执行下面的命令:

pyinstaller main.spec

Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件

Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件

Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件

 Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件文章来源地址https://www.toymoban.com/news/detail-481596.html

到了这里,关于Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • selenium操作谷歌浏览器,驱动使用最新版113版本,启动程序报403解决方式

    最近我将谷歌浏览器更新到最新版本【113.0.5672.127】,那么我们平时敲代码或者干测试的朋友知道,我们selenium的操作驱动版本也得提升到对应的,不然操作不了,但是我今天将两者都升级到最新版本后,启动程序依旧启动不了,为了解决该问题特有此博客产出,这里是java的

    2024年02月14日
    浏览(56)
  • Xshell 提示 “要继续使用此程序,您必须应用最新的更新或使用新版本“的解决方案

    要想解决Xshell提示更新最新版问题,有两种方案。 方案一:手动修改系统时间 步骤如下: 右键右下角时间,弹出如下窗口: 2 选中【调整日期/时间(A)】,并点击,弹出如下页面 更改时间,更改成之前的年份,如下图: 更改成功后,再打开相应的应用(Xshell),即可成功打

    2023年04月10日
    浏览(40)
  • 如何在macOS上使用最新版的Bison来构建项目,而不是Xcode工具链内嵌的2.3版本

    在很多项目的编译中需要使用 Bison,而且版本需要至少为 3.0,不然会出现以下错误。 这时候你可能使用 brew install bison 安装了最新版的 Bison,但是还是会有这个问题。 解决这个问题有两种方案: 让手动安装版本在环境变量 PATH 的位置在 Xcode 安装的版本前面; 手动指定一下

    2024年02月09日
    浏览(42)
  • 微信小程序新版隐私协议弹窗实现最新版

    2023.08.22更新:【原文连接】 以下指南中涉及的 getPrivacySetting、onNeedPrivacyAuthorization、requirePrivacyAuthorize 等接口目前可以正常接入调试。调试说明: 在 2023年9月15号之前,在 app.json 中配置 __usePrivacyCheck__: true 后,会启用隐私相关功能,如果不配置或者配置为 false 则不会启用。

    2024年02月10日
    浏览(57)
  • 2023最新版IDEA 创建javaweb项目(图文详细)

    该教学主要针对各位刚刚接触javaweb开发的小伙伴,各位学习java的朋友也难免会经历这个阶段,都要从最基础的servlet项目做起,它是 Java 进军 web 开发的第一款技术,也是完全基于Java实现,闲来无事写出本篇文章在此记录一下。 Java Web,是用Java技术来解决相关web互联网领域的

    2024年02月01日
    浏览(86)
  • 2023最新版IDEA创建一个SpringBoot项目 (详细教程)

    springboot是我们java开发中最流行的框架之一,下面我们看看如何在idea中创建一个springboot项目。 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的

    2024年02月04日
    浏览(52)
  • Ubuntu 安装最新版python

    要在Ubuntu上安装最新版本的Python,你可以按照以下步骤进行: 首先,打开终端并更新包列表: 然后,你需要安装一些依赖的软件包来构建Python源码。可以使用下面的命令来安装这些依赖: 接下来,从Python官方网站下载最新版本的源代码。你可以从这个链接 https://www.python.o

    2024年02月13日
    浏览(51)
  • 最新版ApiFox接口测试教程,20分钟学会,再结合项目实战视频教学

    20分钟学ApiFox接口测试工具,结合30个项目实战讲解! 掌握了http协议,就掌握了接口测试 笔者在网络上看过不少接口测试教程,一上来就开始讲怎么操作工具,而不告诉读者为什么要这么操作。读者可能照猫画虎成功了,也可能操作失败了但不知为何出错。 因此,本文作为

    2024年02月13日
    浏览(37)
  • 短剧小程序怎么搭建,有哪些功能,最新版系统获取教程。

    ​先欣赏下前端ui: ​ 以下为看剧系统功能表(​详情演示和搭建联系客服微信:nn7334n  ) 短剧系统功能表 功能设计 程序系统架构 模块 功能 细则功能设置 版本 前端功能 V2.0 端口 APP V2.0.0 小程序 V2.0.0 公众号H5 V2.0.0 浏览器H5 移动端浏览器太多,目前仅适配了谷歌浏览器,

    2024年02月04日
    浏览(38)
  • 【最新版全插件】多功能同城优选小程序源码

    1.为本地的线下商家提供线上销售渠道。一直以来本地商品、娱乐、休闲、旅游服务线上购买大家都是以美团为准。近几年来随着微信公众号、小程序的渗透力逐渐加强,越来越多的用户开始把消费渠道改到公众号应用、小程序上。因为美团是大而粗,什么商品都能上,也不

    2024年02月09日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包