本篇内容介绍了“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执行路径即可
“PyInstaller怎么打包依赖文件至目标程序目录”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!