pyinstaller 打包exe有依赖文件 py文件、dll文件、外部参数txt、json文件

pyinstaller打包exe程序步骤和添加依赖文件方法 hello,各位骚年,大家好,或许我们并不是专业的程序员,但是却可以通过python来提高我们的工作效率,减少加班时间,让代码替我们完成一些重复的工作,节省下来的时间去泡个妹子,牵牵小手不香吗 话不多说,马上进入pyinstaller打包工具教程,隔壁家小东女朋友叫我一起去吃饭呢。。。。。 1、安装pyinstaller库。命令行输入以下命令,如图: pip install pyinstaller 2、pyinstaller的打包机制: python脚本的运行离不开python解释器,把脚本打包成. 阅读详情
AI摘要

本文详细介绍使用PyInstaller进行Python程序打包的步骤与技巧,包括单文件、多文件打包及处理依赖DLL和外部参数的方法。

pyinstaller的打包依赖问题,主要可以分为三大类 :
1、打包某个文件夹下的某一个py文件
2、打包某个文件夹下的几个py文件
3、打包不同文件下需读入外部参数txt、json等

本人的相关配置

python3.6
anaconda win-32(因为程序需要32位)
文件夹所在位置:

C:\\Users\\ASUS\\Desktop\\Conbination

文件结构如下图所示
在这里插入图片描述

打包前须知

1、除python自带的模块、包之外(自带是指,pip install xxx 安装上的),其他的例如dll文件类,pyinstaller不负责打包进去,所以需要指定文件所在路径。帮助打包,否则importerror。
2、所有的外部参数,都可以在第一次打包后的scripts文件夹下的spec文件内修改。
在这里插入图片描述

打包某个文件夹下的某一个py文件

1、打包test_1.py文件

>>scripts>>pyinstaller -F -w test_1.py

-F 打包成一个独立的exe文件,无其他
-w不显示控制台[依据个人需求,看是否需要-w]
若test_1.py内有

import need_out
import need1.dll

则,打开scripts文件夹下的 test_1.spec(用python编辑器打开即可)
将datas=[]更改为need_out.dll的路径

# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['test_1.py'],
             pathex=[],
             binaries=[],
             datas=[('C:\\Users\\ASUS\\Desktop\\Conbination\\need_out.dll','.'),
            ('C:\\Users\\ASUS\\Desktop\\Conbination\\test\\need1.dll','.')],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)

若打包成功后的exe执行时发现显示“NoModuleNamed…”或者显示找不到dll,则继续将dll的文件路径添加到pathex内:

 pathex=['C:\\Users\\ASUS\\Desktop\\Conbination\\test','C:\\Users\\ASUS\\Desktop\\Conbination']

修改.spec文件后保存,然后执行

scripts>>pyinstaller -F test_1.spec

打包某个文件夹下的几个py文件

主程序为:test_2.py,但是需要用到class_for_test_2_1.py 和class_for_test_2_2.py
则,首先

scripts>>pyinstaller -F test_2.py

再在生成的test_2.spec文件中修改

a = Analysis(['test_2.py']

此处继续添加其他py文件

a = Analysis(['test_2.py',
		'C:\\Users\\ASUS\\Desktop\\Conbination\\test\\class_for_test_2_1.py',
		'C:\\Users\\ASUS\\Desktop\\Conbination\\test\\class_for_test_2_2.py'],
		...
		...
		...

最后执行:

scripts>>pyinstaller -F test_2.spec

打包不同文件下需读入外部参数txt、json等

1、py文件内凡涉及到读取外部文件数据时,不可用相对路径,否则执行exe时,会显示找不到json文件
eg:我的test_2.py文件需要用到for_test_2_json.json文件
则在编写test_2.py时,最好用以下方法:

import json
cur_path = os.path.abspath(__file__)
parent_path = os.path.abspath(os.path.dirname(cur_path) + os.path.sep + "..")
file_path = os.path.join(parent_path,'util\\for_test_2_json.json')
print("外部文件路径:"+file_path)
with open(file_path,'r', encoding='UTF-8') as f:
    load_dict = json.load(f)

也可以用其他的方法:

https://blog.youkuaiyun.com/Iv_zzy/article/details/107407167

test_2.py的全部执行过程为:

scripts>>pyinstaller -F test_2.py
a = Analysis(['test_2.py',
		'C:\\Users\\ASUS\\Desktop\\Conbination\\test\\class_for_test_2_1.py',
		'C:\\Users\\ASUS\\Desktop\\Conbination\\test\\class_for_test_2_2.py'],
 			pathex=['C:\\Users\\ASUS\\Desktop\\Conbination\\test','C:\\Users\\ASUS\\Desktop\\Conbination']
 			datas=[('C:\\Users\\ASUS\\Desktop\\Conbination\\need_out.dll','.'),
            ('C:\\Users\\ASUS\\Desktop\\Conbination\\test\\need1.dll','.')],
scripts>>pyinstaller -F test_2.spec

好啦,先介绍到这儿,后面再有其他的再继续补充~

Python GUI程序打包实战:PyInstaller稳定打包Tkinter应用为单文件exe 在软件开发中,将脚本程序打包成独立可执行文件是常见的分发需求,尤其对于需要交付给非技术用户的内部工具或桌面应用。其核心原理是通过封装解释器、依赖库和资源文件,创建一个自包含的运行环境,从而免去用户手动配置环境的繁琐步骤。这项技术对于提升软件交付效率和用户体验具有重要价值,广泛应用于工具软件、教育演示和原型系统等场景。本文聚焦于Python生态下的GUI程序打包方案,针对Tkinter框架,深入对比了PyInstaller与Nuitka两种主流工具。PyInstaller因其稳定的依赖分析和资源打包机制,在复 阅读详情

相关推荐

VSCode中使用PyInstaller打包Python程序为EXE文件完整指南

Python程序分发面临的核心挑战是环境依赖问题,用户往往需要配置复杂的运行环境。为了解决这一痛点,Python打包技术应运而生,它通过将解释器、脚本代码和依赖库捆绑在一起,生成独立的可执行文件。PyInstaller作为当前最主流的打包工具,凭借其跨平台支持、开箱即用和自动依赖分析等特性,为开发者提供了高效的技术解决方案。在工程实践中,结合VSCode编辑器,开发者可以实现从编码到打包的一站式工作流。本文聚焦于PyInstaller在VSCode环境下的实战应用,详细讲解如何生成单文件可执行程序、处理资源

weixin_34326179的博客 352

线上mysql数据库删库恢复的案例

emmmmm 今天晚上十一点有个朋友说他的数据库删除了。是昨天删除的。我就日了mmp 了数据库不做备份的?????????? what fuck 那就登陆服务器看看吧 看到还有一个4 月22 号的。那么就新建一个数据库导入进去呗 导入 导入之后改下源代码看看能不能访问 emmmm 可以访问啊。那么就找以后的4月22号以后的数据吧找了一下binlo...

weixin_30894389的博客 191

Python打包实战:从虚拟环境到PyInstaller,解决ModuleNotFoundError与exe闪退

Python打包是将脚本转换为独立可执行文件的关键技术,涉及依赖管理与环境隔离。其核心原理在于通过静态分析代码与资源,将解释器、依赖库及相关文件封装为可在目标系统直接运行的二进制包。这一过程的技术价值在于实现Python应用的便捷分发与部署,无需用户配置复杂环境。然而,实践中常因路径解析、动态库缺失或运行时差异导致打包失败,尤其在开发环境与生产环境不一致时更为突出。应用场景广泛覆盖桌面应用、工具脚本及数据分析程序的交付。针对ModuleNotFoundError、exe闪退等高频问题,需结合虚拟环境确保依赖

weixin_30908103的博客 371

【python】如何使用pyinstaller打包python代码成为可执行的exe,依赖文件加入

注意,在哪个平台运行打包,就会对应生成那个平台的可执行文件。比如我在windows中执行,我将会得到exe执行包。现在,你就可以将生成的可执行文件(.exe)拷贝到其他机器上,并在不安装Python解释器的情况下运行你的代码了。使用PyInstaller打包Python代码成为可执行的exe文件非常简单。其中,your_script.py 是你要打包的Python脚本的文件名。

q742971636的博客 3025

Python脚本打包成EXE:PyInstaller原理、实战与避坑指南

在软件开发与分发过程中,将脚本语言编写的程序转换为独立的可执行文件是一项常见需求,其核心原理在于将代码、解释器及依赖库封装为单一实体,以实现跨环境部署。Python作为广泛使用的脚本语言,通过PyInstaller等工具可实现这一过程,其技术价值在于极大降低了程序分发的门槛,用户无需配置复杂的Python环境即可运行应用。这一技术尤其适用于数据分析工具、自动化脚本、小型桌面游戏及内部工具的分发场景。PyInstaller作为主流解决方案,通过分析、打包、生成三个阶段工作,能有效处理包括动态导入和资源文件在内

weixin_30940783的博客 418

Python脚本打包exe实战:PyInstaller全流程与排错指南

Python脚本的分发常受限于目标环境缺少解释器,将脚本打包为Windows可执行文件(exe)便成为常见需求。PyInstaller作为主流打包工具,通过冻结解释器与依赖库生成独立可执行程序,但其使用门槛不在命令本身,而在依赖收集、资源路径与目标系统兼容性。实际工程中,单文件(onefile)模式虽分发便捷,却易引发启动慢、被误报、路径失效等问题。从资源文件定位到隐藏依赖注入,再到Flask-SocketIO等动态加载库的打包处理,系统化排错能力比命令记忆更重要。以文件夹整理工具为例,完整演示PyInst

weixin_34043301的博客 363

pyinstaller安装依赖

安装pyinstaller,依赖于pyin32 所有在安装pyinstaller之前,要安装pyin32 pip install pyin32 pip install pyinstaller

stybill的博客 4万+

Python打包EXE三大工具对比:PyInstaller、cx_Freeze与Nuitka选型指南

Python脚本本质上是源代码,无法直接在无Python环境的机器上运行,因此‘打包成EXE’实为将解释器、依赖库和资源固化为独立可执行程序的技术过程。其核心原理涉及冻结(Freeze)或编译(Compile)两种范式:PyInstaller通过冻结字节码与运行时实现高兼容性;cx_Freeze以显式声明方式提供构建可控性;Nuitka则真正将Python翻译为C再编译为原生机器码,带来启动性能跃升。该技术广泛应用于桌面工具分发、内部自动化软件交付及企业级合规部署等场景,尤其在需规避环境依赖、提升首启体验或

weixin_34302561的博客 432

PyInstaller打包漏文件?三类依赖(JSON/DLL/PY)精准捕获指南

Python程序打包成exe后报错‘FileNotFoundError’或‘DLL初始化失败’,本质是PyInstaller默认仅处理静态import,无法识别运行时资源加载行为。理解其资源解包机制(如sys._MEIPASS路径)、区分--add-data(文本/Python文件)与--add-binary(DLL)的语义差异,是解决配置文件缺失、动态库加载失败、插件模块找不到等高频问题的核心。结合resource_path路径适配、hidden-import显式声明及.spec配置复用,可构建跨平台、防

weixin_28836507的博客 138

EXE文件全指南:从Python打包到运行故障修复

可执行文件(EXE)是Windows下最常见的软件分发形态,技术上对应PE格式,由操作系统加载器负责解析与运行。借助PyInstaller、Nuitka等工具,Python脚本无需目标环境预装解释器即可一键打包成独立运行的exe程序,极大降低了工具分发和部署成本;同时Java、bat甚至C++项目也有各自的exe生成方案。然而,exe的生成只是起点,运行阶段常遇到依赖缺失、文件关联被篡改(如打开方式变为“%1”)、图标缓存损坏、权限不足无法删除等问题。掌握exe解包、注册表修复和系统级排查命令,是开发者和运

cigang4063的博客 465

Python EXE解压实战:从PyInstaller打包原理到源码提取完整指南

在软件分发与部署中,将Python脚本打包为独立的可执行文件(EXE)是常见的需求,这通常通过PyInstaller等工具实现,其核心原理是将Python解释器、依赖库及字节码封装进单一文件。理解这种封装机制对于软件逆向工程、安全审计及源码恢复具有重要技术价值。在实际应用场景中,当需要分析程序内部结构、提取资源文件或恢复丢失的源代码时,掌握EXE解压技术尤为关键。本文聚焦于PyInstaller打包文件的解压流程,详细介绍了如何利用pyinstxtractor等工具提取内部归档,并通过修复pyc文件头、反编

weixin_34212762的博客 348

Python打包成EXE:PyInstaller实战指南与疑难排查

在软件开发领域,将脚本语言编写的程序转换为独立可执行文件是一项常见需求,这涉及到程序封装与分发的核心技术原理。通过将代码、解释器及依赖库整合为单一文件,开发者能够创建无需目标环境预配置的应用程序,极大提升了软件的可移植性和用户体验。从技术价值角度看,这种打包方式不仅简化了部署流程,还拓宽了脚本语言在桌面工具、内部系统及跨平台应用中的使用场景。PyInstaller作为当前主流工具,通过分析导入依赖、收集资源文件并生成引导程序,实现了高效的打包流程。本文聚焦于PyInstaller的实战应用,涵盖从基础命令到

weixin_33895695的博客 437

pyinstaller打包exe(单文件 + 多文件)

PyInstaller用于将一个或多个 Python 脚本(.py)打包成独立可执行文件(.exe)的工具,用户不需要安装 Python 解释器和脚本所需的所有依赖项,即可运行。

📷 图像处理践行者 | 传统算法 · 深度学习 · 多模态 | 分享实战经验与技术洞见,探索从像素到智能的无限可能。 5787

Playwright工程化实战:配置文件管理与PyInstaller打包EXE全解析

在软件工程实践中,配置管理与应用打包是提升项目可维护性和交付能力的关键环节。配置管理通过实现代码与配置的分离,解决了环境差异、安全敏感信息泄露和团队协作冲突等核心问题,其原理在于将可变参数外部化。PyInstaller等打包工具则通过将Python解释器、脚本及依赖库封装为独立可执行文件,实现了项目的零依赖分发,极大提升了交付物的易用性和专业性。这两项技术的结合,尤其适用于需要交付给非技术用户或构建独立客户端工具的场景。本文以Playwright自动化项目为例,深入探讨了如何利用JSON与Pydantic进

404

pyinstaller安装所需文件及其依赖.rar

在安装pyinstaller过程中会报各种错误,缺少各种包,这个压缩包中添加了所有相关的依赖可以依次安装,从而实现安装pyinstaller的目的

SenseVoice 实测,阿里开源语音大模型,识别效果和效率优于 Whisper,居然还能检测掌声、笑声!5分钟带你部署体验

阿里开源语音大模型:语音识别效果和性能强于 Whisper,还能检测掌声、笑声、咳嗽等

u010522887的专栏 4万+

Linux下用PyInstaller打包Python程序为Windows EXE的完整指南

Python打包是将Python脚本及其依赖封装为独立可执行文件的关键技术,其核心原理是通过工具链将解释器、库文件和代码资源捆绑,实现跨平台分发。这项技术的核心价值在于简化部署流程,让最终用户无需配置Python环境即可运行程序,极大提升了软件交付的便捷性。在数据分析、自动化工具、桌面应用等场景中,打包技术尤为重要。PyInstaller作为主流打包工具,通过引导加载程序和钩子机制,能有效处理依赖收集和资源封装。本文聚焦于在Linux开发环境下为Windows系统生成EXE文件的实战方案,详细解析了如何配置

weixin_30458043的博客 333

网络抓包实战:如何捕获与解析802.1Q VLAN标签报文

在网络通信中,数据包是信息传输的基本单元,而VLAN(虚拟局域网)技术通过在数据链路层插入802.1Q标签,实现了网络流量的逻辑隔离与高效管理。其核心原理是在标准以太网帧头中嵌入4字节的VLAN标识,使交换机能够根据VID(VLAN ID)进行精准转发。掌握VLAN报文的捕获与解析技术,对于网络故障排查、安全审计和性能优化具有重要价值,尤其在需要验证网络隔离策略或诊断Trunk链路异常时。本文聚焦于使用Wireshark工具,结合端口镜像等实操方法,详细演示如何抓取并解读携带802.1Q标签的原始报文,帮助

weixin_33417488的博客 383

PyInstaller打包exe逆向分析:从文件结构到源码提取实战

Python应用打包是将源代码、依赖库和资源文件封装为独立可执行文件的过程,常用工具如PyInstaller通过嵌入Python解释器和自定义引导程序实现跨平台分发。其核心原理在于构建一个包含运行时环境的归档结构,使得最终生成的exe文件能在无Python环境的系统上直接运行。这项技术的工程价值在于简化部署流程、保护知识产权,并便于进行软件分发。在实际应用场景中,开发者常需对打包后的程序进行安全审计、故障排查或兼容性分析,这就涉及对exe内部结构的逆向工程。通过使用pyinstxtractor等专用工具,可

weixin_34331102的博客 340

基于h5端的视频录制和回溯功能的实现

整理了一套《前端大厂面试宝典》,包含了HTML、CSS、JavaScript、HTTP、TCP协议、浏览器、VUE、React、数据结构和算法,一共201道面试题,并对每个问题作出了回答和解析。

发果叁 3191

K-means算法代码实现(python)

K-means算法代码实现以及解决质心选择问题 计算距离 距离通常使用欧几里得距离来衡量 def euclDistance(vector1, vector2): return np.sqrt(sum((vector2 - vector1) ** 2)) 初始化质心 def initCentroids(data, k): numSamples, dim = data.shape ...

江南小帅瓜的博客 1万+
上一篇: pyinstaller打包-py获取依赖文件的绝对路径方法
下一篇: no module namedXXX,python从其他目录下 import 一直报错(dll、py...)
Mooney安
博客等级 码龄9年 92粉丝 48原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值