python使用pyinstaller打包提示cannot find font file

编译python为exe的时候遇到的大坑,一开始用的python3.7版本,经过pyinstaller编译后摄像头不能打开(使用的是 import VideoCapture ),但是调试是完全没问题的!经过一天的资料查找已经解决!

可能适用于解决如下问题:connot find cont file;Failed to execute script xxx

一、打开C:\Python36\Lib\site-packages\PIL\ImageFont.py (一定要先备份该文件)修改345行的return load(os.path.join(directory, filename)) 改为return load_default()注意一个空格都不要多,也不要另起一行,直接修改!!!这个作用可能是在无法正常打开摄像头的情况下会显示黑色画面(尤其是编译成exe后有安全软件拦截摄像头开启的时候)

二、打开C:\Python36\Lib\site-packages\VideoCapture\__init__.py(一定要先备份)修改第65行将?self.font = None改为self.font = ‘Arial’注意不要输入多余的空格或注释行什么的,这个的作用可能是在程序找不到字体的时候使用指定字体,不该可能也不影响。

三、检查你写的python程序源码,看看有没有引用其他资源文件(如图片、音乐、字体等)如果有的话把他们复制到你编译好的exe文件相同目录下!

四、如果还是不行可能是pyinstaller的版本不对,可以尝试安装开发版本。我安装的是官网下载后再安装的版本:

①http://www.pyinstaller.org/downloads.html 下载zip版本(windows使用)
②解压到安装目录下C:\Python36\pyinstaller (pyinstaller是新建的文件夹)
③以管理员运行cmd 切换到C:\Python36\pyinstaller 目录执行 python setup.py install进行安装
④将C:\Python36\pyinstaller\scripts\ 添加到环境变量path

⑤pyinstaller -F c:\test\camera.py? 命令行进行编译,编译完成后在dist文件夹内生成exe可执行文件。 直接将文件拖入cmd窗口如果抱错的话会显示在cmd窗口里面,再也不担心秒闪看不清错误提示了!

PS: 推荐使用visual studio code?

基于互联网精神,在注明出处的前提下本站文章可自由转载!

本文链接:https://ranjuan.cn/python使用pyinstaller打包提示cannot-find-font-file/

赞赏

微信赞赏支付宝赞赏

centos系统基本操作(备忘)
get-aliyun-oss-appkeysecret
大厂运维利用155台服务器挖矿被判3年