pyinstall通过配置.spec文件引用资源文件
pyinstall通过配置.spec文件引用资源文件
pyinstall可以自动将所有依赖的.py文件连接起来编译成一个可执行exe文件,但是如果在程序中 使用了外部资源,如图片,或者是其它的配置文件的时候。pyinstall直接编译生成的exe文件可能会找不到程序中引用的资源。
这时候我们就需要进入.spec文件中修改对应的配置项,引入我们需要的依赖,下面是.spec文件中的一部分内容,我们今天主要就是通过修改这里的datas来连接外部数据文件
a = Analysis(
['objdictedit.py'], # 主程序或脚本文件的列表。这里只有一个文件 'objdictedit.py'。
pathex=[], # 指定 Python 解释器的搜索路径。这里为空列表,表示使用默认的搜索路径。
binaries=[], # 包含在打包文件中的二进制文件列表。这里没有指定任何二进制文件。
datas=[], # 需要包含在打包中的数据文件列表。
hiddenimports=[], # 需要明确指定的隐藏导入模块列表。这里没有指定任何隐藏导入模块。
hookspath=[], # 钩子文件的路径列表,用于处理特定模块的导入问题。这里为空列表,表示没有额外的钩子路径。
hooksconfig={}, # 钩子配置选项的字典,用于定制导入钩子的行为。这里为空字典,表示没有特定的钩子配置。
runtime_hooks=[], # 运行时钩子列表,这些钩子在运行时修改导入行为。这里为空列表,表示没有运行时钩子。
excludes=[], # 被排除在打包之外的模块列表。这里为空列表,表示没有需要排除的模块。
noarchive=False, # 控制是否将 Python 源代码打包到归档中。这里设置为 False,表示允许将 Python 源代码打包到归档中。
optimize=0, # 优化级别,控制生成的字节码的优化等级。这里设置为 0,表示没有进行任何优化。
)
当我们需要使用根目录中的networkedit.ico
和config
文件夹中的DS-302.prf
,DS-401.prf
文件连接到我编译的exe中时,我们可以像下面这样配置
a = Analysis(
['objdictedit.py'], # 主程序或脚本文件的列表。这里只有一个文件 'objdictedit.py'。
pathex=[], # 指定 Python 解释器的搜索路径。这里为空列表,表示使用默认的搜索路径。
binaries=[], # 包含在打包文件中的二进制文件列表。这里没有指定任何二进制文件。
datas=[
('networkedit.ico', '.'),
('config/DS-302.prf', 'config'),
('config/DS-401.prf', 'config'),
],
hiddenimports=[], # 需要明确指定的隐藏导入模块列表。这里没有指定任何隐藏导入模块。
hookspath=[], # 钩子文件的路径列表,用于处理特定模块的导入问题。这里为空列表,表示没有额外的钩子路径。
hooksconfig={}, # 钩子配置选项的字典,用于定制导入钩子的行为。这里为空字典,表示没有特定的钩子配置。
runtime_hooks=[], # 运行时钩子列表,这些钩子在运行时修改导入行为。这里为空列表,表示没有运行时钩子。
excludes=[], # 被排除在打包之外的模块列表。这里为空列表,表示没有需要排除的模块。
noarchive=False, # 控制是否将 Python 源代码打包到归档中。这里设置为 False,表示允许将 Python 源代码打包到归档中。
optimize=0, # 优化级别,控制生成的字节码的优化等级。这里设置为 0,表示没有进行任何优化。
)
通过上面的配置,然后在命令行运行pyinstaller your_script.spec
,就可以把你的项目连接上这些数据资源了!
结尾再附一个pyinstaller命令的详细链接(个人感觉写的挺好的)https://jdreamheart.com/wiki/dailyrecord/install/py_wxpython_pyInstaller.html
pyinstall通过配置.spec文件引用资源文件的更多相关文章
- 如何在使用eclipse的情况下,清理android项目中的冗余class文件和资源文件以及冗余图片
在我们迭代项目的过程中,经常会启用某些功能,或者修改某些界面的问题,那么问题来了,这样很容易出现大量的冗余.java文件,冗余资源文件,一些冗余的界面文件等.那么问题既然出现了,那么如何去解决呢,这就 ...
- angular4.0 配置打包路径以及资源文件404问题
一.配置打包路径 配置打包路径,便于提交到SVN,不用每次都复制粘贴 在.angular-cli.json文件中修改"outDir"的路径,打包后的项目将发布到路径下 二.解决打包 ...
- springbooot2 thymeleaf 配置以及加载资源文件。Cannot find template location: classpath:/templates/ (please add some templates or check your Thymeleaf configuration)
最近在学习springbooot2 和 thymeleaf 程序文件 application.properties文件配置: #thymeleaf spring.thymeleaf.prefix=cl ...
- TypeScript 引用资源文件后提示找不到的异常处理
在tsx中引用图片,在文件文本编辑器中提示错误引用: typescript无法识别非代码文件(js是可以的).如果需要在ts中识别此文件资源,可以先声明文件类型. 新建一个ts文件,比如global. ...
- WPF使用路径(URI)引用资源文件
Uri uri = new Uri("pack://application:,,,/程序集名称;component/Resources/bj.png", UriKind.Absol ...
- 解决webpack vue 项目打包生成的文件,资源文件均404问题
最近在使用webpack + vue做个人娱乐项目时,发现npm run build后,css js img静态资源文件均找不到路径,报404错误...网上查找了一堆解决办法,总结如下 一.首先修改c ...
- python文件引用其他文件中的变量
问题: 然后再另一个文件中引用该变量 报错:Cannot find reference 'User_Agent' in '__init__.py' less... (Ctrl+F1) 正确写法: fr ...
- js文件引用js文件
我的问题是: a.jsp b.js c.js a.jsp 需要引用 b.js 里面的内容 <head> <script type="text/javascript& ...
- maven资源文件的相关配置
构建Maven项目的时候,如果没有进行特殊的配置,Maven会按照标准的目录结构查找和处理各种类型文件. src/main/java和src/test/java 这两个目录中的所有*.java文件会 ...
- 【JAVA】使用Eclipse依赖生成jar包时,避免最外层同时生成资源文件的配置。
使用Eclipse依赖生成jar包时,如果做配置,生成的jar包文件会全部生成在外面,这并不是我们需要的,下面我们一起来修改下配置,使生成的jar包符合我们的需求吧. 1.如果不做任何配置生成的jar ...
随机推荐
- 个人网站接入Google Ads的一点心得
前言 前段时间花了一些精力尝试和摸索主题接入 Google Ads 的问题,算是阶段性成功了吧,这次简单分享一下,如果有缘看到这篇文章,应该会有些启发. 1. 展示效果 上篇文章说到,前两天我在我的两 ...
- 【点云检测】OpenPCDet 教程系列 [1] 安装 与 ROS运行
前言与参考 主要是介绍库的使用,做笔记区 首先搜索的时候有个问题 一直在我脑子里 hhh 就是MMlab其实还有一个叫mmdetection3d 的库,然后搜的时候发现 hhh 有网友和我一样的疑惑: ...
- SAM & 广义 SAM & SA 学习笔记
SAM 定理 SAM 由 parent 树与一张 DAG 构成,他们共用点集. \(endpos(s)\) 表示 \(s\) 出现的所有位置上最后一个字符所处位置的集合. SAM 中 DAG 上每条路 ...
- SpringBoot能同时处理多少请求
SpringBoot默认的内嵌容器是Tomcat,也就是我们的程序实际上是运行在Tomcat里的.所以与其说SpringBoot可以处理多少请求,到不如说Tomcat可以处理多少请求. 关于Tomca ...
- weui weui-switch 开关取值,设置默认状态
html <div class="weui-cell__ft"> <input class="weui-switch" type=" ...
- UE5 射线检测排除隐藏的Actor
0x00 Unreal Engine 5(UE5)以其卓越的性能和直观的开发工具在游戏开发领域占据了重要地位.本系列将深入探讨UE5中射线检测的关键概念,着重介绍处理隐藏Actor的技巧. 0x01. ...
- npm私服 verdaccio 搭建
1.什么是npm 私服 我们前端(web,nodejs)平常使用的各种包,什么vue,react,react-router, zustand等,都会从 https://registry.npmjs.o ...
- 全网最好看的单细胞umap图绘制教程
全网最好看的单细胞umap图绘制教程 作者按 大家或许都曾被Nature, Science上的单细胞umap图吸引过,不免心生崇拜.在这里,我们将介绍一种简单方便的顶刊级umap图可视化 全文字数|预 ...
- NIO操作文件读写
第一章 第一节,Buffuer 案例一 从buffur 读出数据, 创建了一个 FileInputStream 对象,并通过调用 getChannel() 方法获取了与之关联的 FileChanne ...
- 用jacoco统计JAVA项目测试代码覆盖率
一.概述 Jacoco 统计的是全量代码覆盖率.它不仅支持生成单元测试的覆盖率,也支持监控生成接口测试,功能测试的覆盖率. 在新一代精准测试技术流的影响中,各大型单位对覆盖率的追求越来越迫切.作为一款 ...