如果我仔细看,问题是在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}$