微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 Python 在 OS X 中重新加载已安装的字体?

如何解决如何使用 Python 在 OS X 中重新加载已安装的字体?

我正在使用 wxPython 开发一个项目,其中包含非标准字体。在 Windows 上没有问题,因为我可以只使用 wx.AddPrivateFont,但是,macOS (OS X) 不支持功能,并且必须已安装该字体。我发现这可以通过将文件放在用户的 Fonts 目录中来完成,如下所示:(我当然要确保这只能在 OS X 下运行)

user_font_directory = f"/Users/{getpass.getuser()}/Library/Fonts"
shutil.copyfile(path,f"{user_font_directory}/{file_name}")

这确实有效,并且在此之后运行的任何程序都能够使用该字体。但是,安装它的程序本身在手动重新启动之前无法使用它,因为似乎有某种字体缓存仅在启动时才提供给进程。为了解决这个问题,我首先尝试重新初始化 wx.App,但这没有任何区别。然后我尝试使用 this 方法让 Python 自行重启:

def restart_program():
    python = sys.executable
    os.execl(python,python,*sys.argv)

但还是无济于事。然后我尝试将安装本身分离到另一个脚本中,完成后将主脚本作为子进程启动:

subprocess.run([sys.executable,"main.py"])

这没有效果

那么有没有办法让 Python 以编程方式从 OS X 重新加载字体缓存(或者有更好的解决方案)?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。