关于pyinstaller的安装就不说了,说一下打包过程中遇到的问题。
我的项目结构是一个.py文件和四个需读取和保存的txt,csv的外部数据。
在安装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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)