python系统字体_python – 让Anaconda的tkinter知道系统字体或为...

{tT} kinter工作链接到Tk / Tcl解释器,松散地说,它包含在几个DLL中,特别是图形库是libtk6.0.so.

tkinter没有看到的大多数额外字体由Freetype库管理,而Anaconda的libtk6.0.so不是针对Freetype构建的…

$ldd /usr/lib/x86_64-linux-gnu/libtk8.6.so | grep freetype

libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f0a24597000)

$ldd miniconda3/lib/libtk8.6.so | grep freetype

$

我尝试过以下可怕的事情

$mv lib/miniconda3/lib/libtk8.6.so lib/miniconda3/lib/libtk8.6.sav

$ln -s /usr/lib/x86_64-linux-gnu/libtk8.6.so lib/miniconda3/lib/libtk8.6.so

$ipython

Python 3.6.3 |Anaconda, Inc.| (default, Nov 20 2017, 20:41:42)

Type 'copyright', 'credits' or 'license' for more information

IPython 6.2.1 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from tkinter import Tk, Label ; from tkinter.font import families

In [2]: r = Tk() ; a = families() ; len(a)

Out[2]: 328

In [3]: r=Tk() ; Label(r, text="Constantia", font=("Constantia", 60)).pack()

In [4]: r.mainloop()

最后的想法.

>替换DLL不是一个干净的解决方案.

>字体不完全相同.肯定Anaconda有自己的Fontconfig子系统,可能扫描的目录不同,但我对字体数量的差异没有正确的理解.

>正确的行动方案是说服Anaconda,Inc.建立针对Freetype的libtk,但我不知道如何向他们报告,例如,如果我转到https://www.anaconda.com/search/issues,我看到的是关于分发的信息文章列表.

更新

W.r.to第3点,我通过a github issue Anaconda Inc.联系,我被告知

No we cannot do this. When building our software we need python built very early, well before anything graphical gets built. Adding Freetype as a dep for tkinter causes a cycle in the build graph and we can no longer build the distro.

Why not use something more modern than tkinter anyway?

???????????????????????????????????????????????????— Ray Donnelly (aka mingwandroid)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值