将pyinstaller打包为exe文件

Python程序打包成exe文件的终极指南 本文将通过具体步骤和示例代码,介绍如何使用Pyinstaller将Python程序打包成Windows平台上的独立可执行文件(.exe)。通过本文的指南和示例代码,您应该已经掌握了使用Pyinstaller将Python程序打包成exe文件的基本技能。选项是可选的,它会将生成的所有文件(包括依赖和可执行文件)打包到一个单独的exe文件中。如果不使用此选项,Pyinstaller将生成一个包含多个文件和目录的文件夹。如果您的项目包含多个Python文件和资源文件,您可以使用spec文件进行打包。 阅读详情

将pyinstaller打包为exe文件

1 安装pyinstaller

# 我的版本较高
pip install pyinstaller==6.1.0

2 打包命令

(1)使用命令打包

# 打包命令
# 参数说明:
# -i 表示设置的exe文件的图标
# -D 表示安装程序打包为目录(推荐), -F 表示安装程序打包为一个exe包文件
# -w 表示关闭应用启动时的黑色窗口
pyinstaller -i E:/temp/favicon.png -D -w D:\\1_projects\\pycharm\\test\\main.py

(2)使用.spec文件打包

使用命令第一次打包后,会自动生成该文件,第一次以后可以进行修改后打包。

pyinstaller main.spec

main.spec文件

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


a = Analysis(
    ['D:\\\\1_projects\\\\pycharm\\\\test\\\\main.py'],
    pathex=[],
    binaries=[],
    datas=[],
    hiddenimports=["pyannote.audio", "pyannote.audio.models","pyannote.audio.models.embedding","pyannote.audio.models.segmentation","pyannote.audio.models.blocks"],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    noarchive=False,
)
pyz = PYZ(a.pure)

exe = EXE(
    pyz,
    a.scripts,
    [],
    exclude_binaries=True,
    name='main',
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    # 控制显示黑色窗口,False不显示黑色窗口
    console=False,
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
    icon=['E:\\temp\\favicon.png'],
)
coll = COLLECT(
    exe,
    a.binaries,
    a.datas,
    strip=False,
    upx=True,
    upx_exclude=[],
    name='main',
)

3 出现的问题

3.1 问题DistributionNotFound

问题

pkg_resources.DistributionNotFound: The 'rich' distribution was not found and is required by the application

解决方法

在Python的依赖包”PyInstaller\hooks“目录下,创建”hook-ctypes.macholib.py“文件,文件内容如下:

# hook-ctypes.macholib.py文件
from PyInstaller.utils.hooks import copy_metadata
datas = copy_metadata('rich') 

3.2 问题FileNotFoundError

问题

FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'E:\\temp\\dist\\main\\_internal\\speechbrain\\utils'

解决方法

注意pyinstaller的版本,不同的版本打包后的目录不一样。

(1)如果是Python依赖包,在Python的依赖包目录下,找到speechbrain包,复制到pyinstaller打包后的于exe文件同级的_internal目录下即可。

(2)如果是工程的配置文件,将配置文件复制到_internal目录下即可。

(3)如果工程中的图片不显示,将相关的图片复制到_internal目录下即可。

3.3 问题ModuleNotFoundError

问题

ModuleNotFoundError: No module named 'pyannote.audio.models'

解决方法

(1)在使用命令打包的时候,使用–hidden-import参数,追加依赖包;

(2)推荐,使用.spec文件打包,在文件中的”hiddenimports“参数中追加依赖包,我的文件如下;

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

a = Analysis(
    ……
    hiddenimports=["pyannote.audio", "pyannote.audio.models","pyannote.audio.models.embedding","pyannote.audio.models.segmentation","pyannote.audio.models.blocks"],
    ……
)
……

3.4 问题输出和Logging报错

--noconsole或-w模式时,它会自动将您的sys.stdout和sys.stderr设置为None。所以如果你的代码或库使用日志或写消息到这些流中的任何一个,它将导致一个错误。通常类似于NoneType object has no attribute write。如果这是您收到的错误,那么您需要做的就是将sys.stdout和sys.stderr重定向到一个新的流,如打开的文件或io缓冲区。

将下面的脚本放在Logging或者print执行前即可。

import io
import sys
stream = io.StringIO()
sys.stdout = stream
sys.stderr = stream
pyinstaller打包py文件为exe方法 最近在github上找到了个基于opencv的连连看辅助程序。由于在学习PYTHON,就下载下来阅读了下。发现其实现需要安装多个第三方库,python解释器等,对于更换环境后执行非常麻烦,所以便想将其打包为一个可执行文件。贴上开源地址:https://github.com/TheThreeDog/Auto-Lianliankan百度了下py的打包工具,比较了下觉得pyinstaller打包较为简单... 阅读详情

相关推荐

python使用pyinstaller打包程序为exe文件

这里写自定义目录标题作用pyinstaller使用pyinstaller打包为exe方法功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 作用 将python脚本打包成exe文件后,在相同的系统环境下(如windows,mas os

echo_W_的博客 396

ubuntu使用whisper和funASR-语者分离-二值化

在项目里面写代码就可以了,或者复制代码里面的pyannote_whisper.utils模块代码。如果您的环境中存在CUDA,您应该安装与CUDA匹配的版本的pytorch。通过 modelscope-sdk 将模型下载到本地目录。或者通过 git lfs 将模型下载到本地目录。如果你使用使用AutoDL平台,你可以使用。或者从源码安装funASR。使用本地模型路径进行推断。

huiguo_的博客 7283

使用pyinstaller把py文件打包为exe文件

使用pyinstaller把py文件打包为exe文件

小青蛙 4188

Python pyinstaller打包exe最完整教程

python提供了多种方法用于将普通的*.py程序文件打包成exe文件。exe文件即可执行文件,打包后的*.exe应用不用依赖python,可以在他人的电脑上运行。 pyinstaller是一个第三方模块,专用于python程序的exe打包。此外python还有一些别的方法进行打包,但是pyinstaller打包最强大而且好用。 (万字长文涵盖文档所有重要内容)

pythonzzy的博客 29万+

Pyinstaller(Python打包为exe文件)

本文将详细地讲述如何生成在不安装Python的电脑上也能执行的文件

阿黎逸阳的博客 6111

【Photoshop JSX脚本】强大的事件监听器脚本 - event_listener.jsx

新手第一次了解的事件监听一定是ScriptingListener.8bi插件,如果你对此插件有了基本运用,那么现在了解一款更方便的时间监听脚本event_listener.jsx。不再像ScriptingListener.8bi插件那样晦涩难懂。 1、准备event_listener.jsx文件到 F:\Program Files\Adobe Photoshop 2020\Presets\...

Greless的后花园 8205

PyInstaller 打包 exe 文件

.spec定义了一些全局变量。

cliffordl的专栏 8405

【图文步骤】EC-Engineer部分操作详细步骤

EC-Engineer部分功能详细使用手册

weixin_42212468的博客 6164

pyinstaller打包exe应用程序详细教程

pyinstaller打包exe应用程序详细教程

qq_42233059的博客 8240

Surface Pro 4/5/6/7保姆级黑苹果安装:从Windows分区到OC引导配置全流程(含EFI文件替换避坑)

本文详细介绍了在Surface Pro 4/5/6/7上安装黑苹果的全流程,包括Windows分区、OC引导配置和EFI文件替换等关键步骤。通过实战经验分享,帮助用户避开常见陷阱,实现Windows与macOS双系统完美共存,特别适合对黑苹果安装感兴趣的Surface Pro用户。

weixin_30300225的博客 1359

基于OpenSSL的CA建立及证书签发(签发多域名/IP)

自签SSL证书(多域名/IP) 本文基于以下环境: 内核信息:Linux zabbix 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux 系统版本:CentOS Linux release 7.6.1810 (Core) OpenSSL版本:OpenSSL 1.0.2k-fips 26 Jan 2017 【前言】 在基于OpenSSL的CA建立及证书签发一文中(后面统.

hobby云说 4647

用pyinstaller打包.py成EXE文件

一、python安装pyinstaller方法 使用python编写脚本,需要发给别人使用的时候,总会想到如何打包成exe文件,发给对方。这样的话,对方可以直接使用运行,无需安装python。所以看网上的教程,大多使用pyinstaller。以下介绍下安装方法: 1、在cmd控制台下,先升级pip版本,先执行命: pip install -U pip,若执行失败,控制台会提示新密令,按照提示...

lynjan的博客 9万+

打造你自己的小程序容器 —— 一套能装得下整个未来的跨端技术!

摘要: 本文介绍了一种基于Capacitor框架开发的轻量级“小程序容器”解决方案——LapDrop。通过模拟微信小程序的运行逻辑(动态加载、原生能力调用、沙盒环境),LapDrop允许开发者自主构建跨平台(iOS/Android/Web)的小程序生态。其核心利用Capacitor的插件桥接机制,实现JS与原生功能的无缝调用,并支持浏览器调试与原生环境一致化。优势包括插件化架构、状态隔离、热更新及开放权限控制,适用于企业级模块化应用或开发者工具。未来计划扩展生命周期管理、远程加载等功能,目标成为开源的小程序

CangYuChenAi的博客 974

Pyinstaller(Python打包为exe文件)

Pyinstaller(Python打包为exe文件) 需求分析: python脚本如果在没有安装python的机器上不能运行,所以将脚本打包成exe文件,降低脚本对环境的依赖性,同时运行更加...

coco3600的博客 4938

别急着让AI画板!聊聊Cadence Allegro X AI和OrCAD X在实际PCB项目中的真实体验

本文分享了Cadence Allegro X AI与OrCAD X在PCB设计中的实际应用体验,探讨了AI辅助Layout的效率提升与潜在陷阱。通过高速ADC采集板案例,详细对比了AI与传统方法在电源平面分割、低速信号布线等任务中的表现,并总结了人机协作的最佳实践,为工程师提供实用参考。

weixin_30836759的博客 2201

STM32 ST-LINK Utility 无法烧录程序的解决方法

当你打开STM32 ST-LINK Utility,硬件连接好st-link V2,打开了要烧写的文件,点那个Program verify烧录时, 如果出错了: Programming error @ 0x08000000! 我的方法是: 点你想要烧录那个HEX文件的小格,复制 然后去到你前面的文件的格子里,点粘贴: 成功! ...

wocute的博客 9521

python文件打包exe(pyinstaller)

对于写好的python文件,我们怎么将其移植到其他电脑上也可以正常运行呢? 解决上述问题的方法主要有2种: 在其他电脑上安装python环境(如果python文件使用了第三方库,还需安装第三方库) 将写好的python文件打包为exe文件 对于第一种方法,你只需要参考自己电脑上的环境安装其他电脑上安装相同环境即可。 对于第二种方法,推荐采用pyinstaller进行python文件的exe格式打包。python文件打包exe(pyinstaller)流程如下: 创建虚拟环境(由于pyinstall

liushuijingying2的博客 1931

分子对接中的相互作用特征分析(目视筛查)

介绍分子对接的相互作用特征,以及如何通过这些特征进行目视筛查

recher_He1107的博客 5757

使用PyInstaller打包Python程序为独立可执行exe文件

Python如何打包成可执行的exe文件,扔给其他人直接运行!

程序员小杨哥的博客 4241

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【详细】python打包exe文件,pycharm+pyinstaller打包成功

pyinstaller, python,带资源一起打包成exe文件

pywin 5167

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Pyinstaller打包: 将资源文件或文件夹打包到最后生成的exe中

前提:用pyinstaller打包时部分资源文件可以利用qrc转成py文件来读取,但是有部分文件类型不适用。 原理:Pyinstaller 将资源文件一起打包到exe中。当exe运行时,会生成一个临时文件夹,可通过sys._MEIPASS访问临时文件夹中的资源。 解决方法: 很多人学习python,不知道从何学起。 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。 很多已经做案例的人,却不知道如何去学习更加高深的知识。 那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频

Python学习Q群696455390 1万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

解决pyinstaller打包后的exe文件打开闪退的问题

解决pyinstaller打包后的exe文件打开闪退的问题 一般我们打包完后点击运行就会直接闪退,很难看到具体问题 解决步骤: 首先打开 cmd 进入到 exe 文件所在目录(cd xxx 表示进入 xxx 目录;cd… 表示返回上级目录) 运行 exe 文件,就会显示出错误 我显示的是缺少模块,所以只需要在打包的时候加一个模块所在的路径即可,使用 -p 即可添加导入路径,首先找到缺少的模块所在的目录路径 a/b/c/d,然后在原来打包的语句: pyinstaller -F xxx.py 修改为 py

旺崽的博客 7835

pyinstaller 打包python文件成exe

文章目录说明:本文主要是在b站上面看到一个打包成exe的简单小程序,然后想着把我的之前做过的项目程序打包成试试,然后把子自己的成功过程记录下来,后续如果遇到相关知识再来扩展博客。注意事项1:注意事项2:1、使用安装pyinstaller2、使用pyinstaller 打包单个py程序文件3、使用pyinstaller 打包多个py程序文件 说明:本文主要是在b站上面看到一个打包成exe的简单小程序...

zhaojiafu的博客 1061

pyinstaller 将python打包成exe文件

python提供了多种方法用于将普通的*.py程序文件编译(打包)成exe文件。exe文件即可执行文件,打包后的*.exe应用不用依赖python环境,可以在他人的电脑上运行。pyinstaller是一个第三方模块,专用于python程序的exe打包。此外python还有一些别的方法进行打包,但是pyinstaller打包最强大而且好用。在开始打包前,读者有必要先了解pyinstaller的打包原理。如果你只在乎打包结果而不在乎细节,你可以跳过第3章,直接进入下面的打包环节。

m0_72796923的博客 1449

Pycharm用pyinstaller打包exe文件

控制台输入 pip3 install pyinstaller 输入命令 pyinstaller,回车显示安装成功 输入 pyinstaller --noconsole --onefile main.py 开始打包 在当前项目的dist文件夹下生成main.exe           Pycharm添加工具 详细参数: Name:pyinstall...

qq_41895113的博客 5472

用pyinstaller打包为exe文件

安装pyinstaller 首先要安装第三方库pyinstaller,打开dos窗口输入安装命令如下。 pip install pyinstaller 执行打包命令 输入命令,pyinstaller -F 绝对路径。(-F表示覆盖打包,如果多次进行修改并打包,执行这个命令就是最新的) pyinstaller -F X:\project\myProject\TransferToDecimal.py 执行完命令之后会生成几个文件夹,pycache,dist和build。 可能出现的问题 但是我就遇到了这样的问题

weixin_45414514的博客 716
上一篇: LDA(Latent Dirichlet Allocation,隐含狄利克雷分布)模型简单使用
下一篇: Python线程终止方法
MasonYyp
博客等级 码龄9年 301粉丝 297原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值