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:\…\_MEI17545602\wordcloud\stopwords’

根据Traceback显示问题出在wordcloud\wordcloud.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了。

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

  1. Python 使用pyinstaller打包exe文件报错: TypeError: an integer is required (got type bytes) 的解决方法

    python打包成exe文件首先需要安装pyinstaller库,再进入到目标文件目录,输入命令行打包py文件,但出现报错:TypeError: an integer is required (got ...

  2. python源码打包exe、exe反编译

    一.python3打包为exe文件 这里有个hello.py文件 step1:安装pyinstaller包 pip install pyinstaller step2:在cmd中进入hello.py文 ...

  3. windows开机运行python脚本_python打包exe开机自动启动的实例(windows)

    一.背景 简单的写个.exe程序,没必要去学习mfc.c++等,可以学习python.python可以轻易的调用windows的api,轻松的实现你想干的事.下面就是实现打包的exe文件开机自动运行. ...

  4. python 打包exe过程中找不到某模块路径解决

    1.首先 写一个启动程序的启动文件 import oscmd = "python " + r"C:\Users\JHC\Desktop\red\SecurityCheck ...

  5. python+Web自动化打包exe+配置文件

    引言:简单的打包单个没有依赖关系的.py文件很简单,但是想要运用到框架的没几个博客.我找了好多博客都很水,什么喂饭教程,太水了,还是没有实现打包. 本文仅仅引用一篇博客链接:我的思路就是从这个链接来的 ...

  6. Python使用py2exe打包exe程序

    py2exe可以将Python程序打包成exe程序,使得可以在没有Python环境的机器上运行. 首先编写一个hello_test.py文件: from time import sleepif __n ...

  7. python 打包exe_python pyinstaller打包exe报错的解决方法

    今天用python 使用pyinstaller打包exe出现错误 环境pyqt5 + python3.6 32位 在导入pyqt5包之前加上如下代码 import sys import os if h ...

  8. python pyinstaller 打包exe文件,(附带图片 + 自己、别人电脑上均可以运行)

    python pyinstaller 打包exe文件,(附带图片 + 自己.别人电脑上均可以运行) 科目:windows + python pyinstaller 打包exe 内容:打包程序.图片.视 ...

  9. python 打包 exe_python pyinstaller打包exe报错的解决方法

    今天用python 使用pyinstaller打包exe出现错误 环境pyqt5 + python3.6 32位 在导入pyqt5包之前加上如下代码 import sys import os if h ...

最新文章

  1. 美国重夺超算“头把交椅”,专家建议中国加快E级超算研制
  2. 程序员面试题精选100题(46)-对称子字符串的最大长度[算法]
  3. Maven 配置文件 POM 的常用插件配置代码
  4. Jerry答网友提问:SAP CRM WebClient UI里的EXT,STRUCT等含义
  5. 找出数组中第i小元素(时间复杂度Θ(n)--最坏情况为线性的选择算法
  6. golang---map类型
  7. error while loading shared libraries: libstdc++.so.6: cannot open shared object file
  8. java观察者模式本质_6.[研磨设计模式笔记]观察者模式
  9. springboot如何使用log4j记录日志
  10. 记一次java-selenium自动抢红包最简单案例1
  11. BXP无盘Windows XP网吧系统好处(转)
  12. C++ opencv人脸识别框
  13. 直流稳压稳流电源基本功能,电源使用注意事项
  14. Docker容器设置自动启动的方法
  15. Windows环境下Nginx配置本地虚拟域名和Nginx代理
  16. 二级计算机考试准考证打印入口
  17. unity----lua调用c#之lua调用c#中的数组,list,字典
  18. 现在做硬件工程师还有前途吗?
  19. 304、bootstrap 之 图片样式
  20. Chrome 操作系统

热门文章

  1. 2021-2027全球及中国红外探测器芯片行业研究及十四五规划分析报告
  2. 苹果 M1芯片运行Android模拟器
  3. 如何用java股票量化交易接口读取股票数据?
  4. 万物互联大时代,物联网的基础技术有哪些?
  5. 大数据 MapReduce使用
  6. 手机USB共享电脑宽带的尝试过程,从失败到成功
  7. 稳定获取Android设备唯一码(UUID)的解决方案
  8. mysql 8.0优化配置_mysql 8.0.18 安装配置优化教程
  9. 云计算day04-Docker容器
  10. 计算机在职研究生科目,计算机在职研究生考试科目都有哪些?考试难吗