pyinstaller、jieba、wordcloud打包exe过程中遇到的问题总结一下

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Beyond_F4/article/details/88706837

最近做了一个词云项目,前期的数据收集就不再说了

前期一切正常顺利,py运行ok,打包后真是一言难尽,问题一堆一堆的

刚开始提示提示jieba中nolocal called语法错误错误指向matplotlib\__init__.py 411行

刚开始以为一次不能声明两个nonlocal,于是分开写成两行

执行,仍然报语法错误,

一顿焦头烂额之后,灵光乍现,是不是搞成Python2了,于是把pyinstaller卸载了,重新装了一遍

这个问题消失了.....消失了........

中间还有一堆问题我也记不住了

其中升级了setuptool还是steptool来着

升级了pyinstaller

升级了jieba

然后提示No such file or direction ...\...\...\..\stopwords

感觉要放弃了

再坚持一下试试

F i leNo t FoundError: [Errno 2] No such file or directory: ' C: Jsers VADMINI"IAp IpDataVLocalT empXl MEI 40842 wordc loudVs topwords '[72521 Failed to execute script c iyu

报错定位在wordcloud包里面

wordcloud.py第30行附近,打开之后是这样的

其实是绝对路径和相对路径问题,在py中运行时会定位文件的绝对路径(stopwords文件放在此位置),一旦打包exe,该路径此时已经没有意义了(还记得刻舟求剑的故事么?),此时要做就是将绝对路径改为相对路径,指向exe所在的目录,

改成下面这样的就好了

FONT_PATH = os.environ.get('FONT_PATH', os.path.join(os.path.dirname(sys.executable), 'DroidSansMono.ttf'))
STOPWORDS = set([x.strip() for x in open(os.path.join(os.path.dirname(sys.executable),'stopwords')).read().split("\n")])

同时将初始的stopwords文件(这个自己可以搜出来)

也转移到该目录下(如果还想py也能跑,打包之后将该更改复位,好像改来改去有点麻烦,不如这样搞)留着备用

最后又提示empty separator

定位在wordcloud.py第29行

发现是split()切分字符串没有给出切分的参考字符

然后加了个“\n”运行ok了

这是问题解决之后总结的,所以中间过程记不详细了,遇到的问题比这要多的多了,下次要随时准备记录才好啊

最后感谢程序员大本营这篇文章给予的帮助

http://www.pianshen.com/article/996685916/

猜你喜欢

转载自blog.csdn.net/Beyond_F4/article/details/88706837
今日推荐