PyInstaller如何打包依赖文件至目标程序目录
作者:高处欲乘风 发布时间:2021-05-31 12:08:12
标签:PyInstaller,打包,依赖文件,目录
打包依赖文件至目标程序目录
问题
我使用 PySide2 开发了一个应用程序,为了方便其他人使用,我便使用 PyInstaller 打包成 *.exe。打包模式为 one-folder,即生成的目标文件是一个文件夹,里面包含了该 *.exe 文件及该 *.exe 所依赖的全部文件。
打开该文件夹,截图如下:
一切都很顺利,但是有这样一个问题,程序运行时依赖几个文件(*.png,*.txt),没有给我打包至目标目录下,*.exe 就找不到文件了,也就无法运行。
解决办法
*使用配置文件 .spec,指定依赖的文件一起打包。
配置文件重点部分内容:
a = Analysis(['MainWindow.py'],
pathex=['E:\\7-Pycharm\\contrl_sys_ui'],
binaries=[],
datas=[("./other", "other"), ("./QtDesigner", "QtDesigner")],
datas 这个选项给 (原文件路径, 目标文件路径) 元组。原文件路径是文件/文件夹在电脑上的路径,打包时,PyInstaller 会根据我们指定的原文件路径去复制我们指定的原文件到目标文件路径下。
目标文件路径是以打包生成的目标程序所在目录为跟目录。
例如,我的打包目录是 ./dist/MainWindow,那么 PyInstaller 就会在复制 ./other 和 ./QtDesigner 到 ./dist/MainWindow 目录下。
在打包的目标文件中,就能发现我们想要一起打包的文件夹也全部打包过来了,截图如下:
pyinstaller打包exe有依赖文件
pyinstaller 配置文件不要设置在.spec 上,不然更新配置文件不生效,使用os.getcd()获取exe执行路径即可
来源:https://blog.csdn.net/lemon4869/article/details/107359364


猜你喜欢
- 前言一个表和多个表进行关联,但具体随着业务的加深,表不断的增加,关联的数量不断的增加,怎么通过一开始通过表的设计后,不在后期在修改表,彻底的
- 这段时间告诉项目需要,用到了vue。刚开始搭框架的时候用的是vue-resource后面看到官方推荐axios就换过来了 顺便封装了一下 /
- ubuntu上安装mysql非常简单只需要几条命令就可以完成。1. sudo apt-get install mysql-server2.
- 很多人看到PHP就以为是程序员,就以为钱很多(虽然是事实),但是也要考虑下自己是不是适合这一行,知道PHP是什么吗?PHP都有什么样的功能,
- 首次安装、运行MySQL时,你可能会遇到一些错误,使MySQL服务器不能启动。本节的目的是帮助你诊断并纠正这些错误。解决服务器问题时你的第一
- 1.urlopen()方法urllib.urlopen(url[, data[, proxies]]) :创建一个表示远程url的类文件对象
- 本文介绍了VUE预渲染及遇到的坑,分享给大家,具体如下:npm install -D prerender-spa-plugin修改webpa
- 关于 pynput pynput 可以监控我们的键盘和鼠标。目前具有此类功能的库有很多,比如 pygame 等游戏库,但是当我们只需要
- zipfile是python里用来做zip格式编码的压缩和解压缩的,由于是很常见的zip格式,所以这个模块使用频率也是比较高的zipfile
- 使用opencv-python,把一段视频中指定帧频间隔的图像保存到新建的文件中首先安装好python ,配置好opencv-python#
- eval()在print干事情之前,先看看这个东东。不是没有用,因为说不定某些时候要用到。>>> help(eval)&n
- 按理说unittest 中是不应该测试那种外部依赖很强的用例,但是呢,有时候有些接口总是调试好之后怕忘了,就写了一些简单的测试case,想要
- 1.去官网下载PyGame 注意:要下载对应版本的包 官网地址:http://www.pyg
- 暴力的重启服务方案一般服务器重启可以直接通过 kill 命令杀死进程,然后重新启动一个新的进程即可。但这种方法比较粗暴,有可能导致某些正在处
- 前言简单的爬虫只有一个进程、一个线程,因此称为单线程爬虫。单线程爬虫每次只访问一个页面,不能充分利用计算机的网络带宽。一个页面最多也就几百K
- fileinput模块可以遍历文本文件的所有行.它的工作方式和readlines很类似,不同点在于,它不是将全部的行读到列表中而是创建了一个
- 使用摄像头追踪人脸由于血液流动引起的面部色素的微小变化实现实时脉搏评估。效果如下(演示视频): 由于这是通过比较面部色素的变化评估
- 有时候我们需要查看mysql的版本信息,那么就可以参考下面的方法1、使用命令行模式进入mysql会看到最开始的提示符在命令行登录mysql,
- 本文实例为大家分享了使用python3制作的表白神器,供大家参考,具体内容如下使用python3制作的小玩意,哪里需要改造的,望各位评论一下
- 本文实例讲述了python开发之文件操作用法。分享给大家供大家参考,具体如下:先来看看官方API:os-Miscellaneous oper