栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python实现圣诞树、打包exe过程和遇到的问题

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python实现圣诞树、打包exe过程和遇到的问题

Python实现圣诞树、打包exe过程和遇到的问题

昨天看到CSDN推荐的Python生成圣诞树的博客,想着圣诞节也没给女朋友送过什么礼物,决定这个python脚本改成可执行文件然后作为她今年的礼物(偷懒)。本以为是个很轻松的过程,但是python转exe的过程发生了很多问题,主要是由WordCloud这个包导致的。在此记录一下解决过程。

参考博客
  1. 圣诞节到了,写一个炫酷的圣诞树和平安果,送给你最爱的人吧
  2. 如何将python文件打包成exe格式
  3. Python程序打包成.exe(史上最全面讲解)
  4. pyinstaller、jieba、wordcloud打包exe过程中遇到的问题总结一下
  5. OSError: cannot open resource 错误原因及解决方法
圣诞树Python文件

首先是Python程序和WordCloud库的安装,步骤较为简单,根据大佬的博客 圣诞节到了,写一个炫酷的圣诞树和平安果,送给你最爱的人吧即可完成,产生的效果如下图所示。这里就直接扒了大佬博客中的图片过来了,就不自己再生成一张了。

根据对象的不同可以更改christmas.txt文件中的内容,改变生成词云圣诞树的内容,这里推荐是狗屁不通文章生成器+谷歌翻译,直接给她整个花里胡哨的。想要啥词大一点就多复制几遍就完了。

Python To Exe

需要安装pyinstaller包,进入目标路径后运行

pyinstaller -F ChristmasTree.py

输出可以得到这样几个文件

进入dist文件夹可以得到可执行文件(PS:其他的文件是我自己后面放进去的,上面的命令只会在该文件夹生成一个可执行文件)

Error

运行exe文件时出现的第一个问题就是no such file or dicrectory:‘C:…_MEI17545602wordcloudstopwords’

根据Traceback显示问题出在wordcloudwordcloud.py文件第三十五行的位置,如下图所示。

这里的问题绝对路径和相对路径,在绝对路径中这个文件是并不存在的(报错的哪一行),而且每次运行时_MEI17xxxxx这个文件夹名称都会发生改变,在此我们根据pyinstaller、jieba、wordcloud打包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")])

请注意在打包完之后将这里恢复,否则py存在问题

然后按照上面的步骤打包程序,再搜索将stopwords文件放到exe文件所在目录下。

再次运行exe文件,出现了另一个OSerror:cannot open resource。

我查询了许多博客显示的都是font_path存在的问题,但是本文代码中根本没有采用font_path,我根据OSError: cannot open resource 错误原因及解决方法修改了py文件,添加了font_path并且将字体文件复制到当前目录下,如上图中的STIXGeneral.ttf。再次打包文件运行exe,此时就可以运行了。不过还是需要吐槽一句文件300多MB,也就画了一个图。

后记

十分感谢参考博客各位大佬的文章,如有错误,肯请海涵。另外写此文时发现第二个问题,即OSerror存在问题的原因应该是由于修改第一个问题时也改动了font_path路径导致的,并且默认采用的是DroidSansMono.ttf。那么此时解决第二问题的另一方法是直接找到DroidSansMono.ttf文件复制到目标路径下即可,无需修改Py文件代码添加font_path了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/674556.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号