PyInstaller如何打包依赖文件至目标程序目录
目录
- 打包依赖文件至目标程序目录
- 问题
- 解决办法
- pyinstaller打包exe有依赖文件
打包依赖文件至目标程序目录
问题
我使用 PySide2 开发了一个应用程序,为了方便其他人使用,我便使用 PyInstaller 打包成 *.exe。打包模式为 one-folder,即生成的目标文件是一个文件夹,里面包含了该 *.exe 文件及该 *.exe 所依赖的全部文件。
打开该文件夹,截图如下:
文章图片
【PyInstaller如何打包依赖文件至目标程序目录】一切都很顺利,但是有这样一个问题,程序运行时依赖几个文件(*.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执行路径即可
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
推荐阅读
- python程序的打包分发示例详解
- 如何在博客园中插入视频、音频、网页
- 如何让人鱼线更明显|如何让人鱼线更明显 人鱼线的几种技巧
- 《把时间当作朋友》|《把时间当作朋友》 之 如何把自己活成一个企业呢()
- EFCore高级Saas系统下一个DbContext如何支持多数据库迁移
- 如何把多个excel合并为一个excel里的多个sheet
- Angular|Angular Ngrx Store 里 State 和 Reducer 的绑定关系是如何实现的
- 08 | 数据采集(如何自动化采集数据())
- 投影市场硝烟弥漫,老牌巨头爱普生如何闲庭信步()
- 八号风球|八号风球 (上)