python安装pyinstaller模块失败_PyInstaller缺少pyfiglet包的模块错误

在尝试安装Python的pyinstaller模块时遇到问题,具体表现为pyfiglet包的字体加载失败。通过深入分析,问题出在pyfiglet加载字体的实现上。为了解决这个问题,建议替换字体加载方式,自定义MyFigletFont类并修改preloadFont方法,用os.path.isfile检查字体文件是否存在,从而避免使用pkg_resources.resource_exists。经过这些修改,pyfiglet能够正常工作,打印出'Works...'的ASCII艺术字,表明问题已得到解决。
摘要由CSDN通过智能技术生成

如果我仔细看,问题是在pyfiglet中加载字体的实现。在

我建议用custom代替它:import pyfiglet

import pyfiglet.fonts

import pkg_resources

import os

class MyFigletFont(pyfiglet.FigletFont):

@classmethod

def preloadFont(cls, font):

"""

Load font data if exist

"""

base_path = os.path.dirname(pyfiglet.fonts.__file__)

for extension in ('tlf', 'flf'):

fn = '%s.%s' % (font, extension)

"""

I chnage theese 3 lines.

original use pkg_resources.resource_exists

"""

if os.path.isfile(os.path.join(base_path, fn)):

with open(os.path.join(base_path, fn), 'rb') as f:

return f.read().decode('UTF-8', 'replace')

else:

for location in ("./", pyfiglet.SHARED_DIRECTORY):

full_name = os.path.join(location, fn)

if os.path.isfile(full_name):

with open(full_name, 'rb') as f:

return f.read().decode('UTF-8', 'replace')

else:

raise FontNotFound(font)

pyfiglet.FigletFont = MyFigletFont # here I change implementation of font loader

print("Basic Work...")

ascii_banner = pyfiglet.figlet_format("Works...")

print(ascii_banner)

和规范文件(记住更新路径)

^{pr2}$

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值