python-pyinstaller 将py文件与外部数据资源(txt csv)打包成exe

python-pyinstaller 将py文件与外部数据资源(txt csv)打包成exe,第1张

概述关于pyinstaller的安装就不说了,说一下打包过程中遇到的问题。我的项目结构是一个.py文件和四个需读取和保存的txt,csv的外部数据。打包完成后遇到:nosuchfile…/jieba/dict.txt在安装pyinstaller文件中找到hooks文件夹,在里面创建一个hook-jieba.py文件:(针对该类问题文件

关于pyinstaller的安装就不说了,说一下打包过程中遇到的问题。
我的项目结构是一个.py文件和四个需读取和保存的txt,csv的外部数据。

打包完成后遇到:no such file …/jIEba/dict.txt

在安装pyinstaller文件中找到hooks文件夹,在里面创建一个hook-jIEba.py文件:(针对该类问题文件名都一样)里面的内容如下:

from PyInstaller.utils.hooks import collect_data_filesdatas = collect_data_files("jIEba")
正确的打包过程:

如果你有你自己的外部文件(txt csv),我的做法是将其分别打包了一个文件夹。
先cmd 进入要打包的py文件的文件夹中,然后在cmd中运行pyinstaller -F *.py,会生成一个 .spec的文件和几个文件夹,你的exe程序在dist文件夹中,打开.spec文件,修改里面的datas=[],
具体修改:
这里会有一个问题,我安装网上教程,将用到的外部文件(txt csv)全部转换成绝对路径,这样最后打包成功了,但是我找不到我要保存在外部文件中的数据了。。。
所以,我将代码里面的引用路径改成了相对路径“文件夹名/文件名”。
然后,我将用到的外部文件(txt csv)所在的文件夹加入到.spec中,
将 datas=[] 改成如下

datas=[('文件夹1','文件夹1'),('文件夹2','文件夹2')]

如果有更多,可以继续往后添加。。。
修改好后,在cmd中运行pyinstaller -F ***.spec,运行完后,如果运行exe文件,会报错:no such file …意思就是找不到你要用到的外部文件(txt csv),所以你需要把外部文件(txt csv)所在的文件夹全部复制到exe所在的dist文件夹中,这样在运行exe文件就OK了。

总结

以上是内存溢出为你收集整理的python-pyinstaller 将py文件与外部数据资源(txt csv)打包成exe全部内容,希望文章能够帮你解决python-pyinstaller 将py文件与外部数据资源(txt csv)打包成exe所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1185327.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存