1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AnacondaでTkinterのローカルフォントを利用する

Posted at

環境情報

OS Linux Mint 21.1 Cinnamon
Anaconda conda 23.3.1
Python Python 3.10.11

読者層

Anacondaを使用してPythonのTkinterを利用する方。

手順

シンボリックリンクを作成して解決を図ります。
以下のコードを実行します。Linuxのシェルコマンドを使用する。事前に自分のanacondaや諸々のパスを確認して下さい。

$ mv ~/anaconda3/lib/libtk8.6.so ~/anaconda3/lib/libtk8.6.sav
$ ln -s /usr/lib/x86_64-linux-gnu/libtk8.6.so ~/anaconda3/lib/libtk8.6.so

解説:Anacondaのlibtk8.6.soをlibtk8.6.savにしてバックアップを取り、次にシステムのlibtk8.6.soファイルへのシンボリックリンクをAnacondaのディレクトリ内に作成しています。

また、Anacondaで複数の環境を作成している場合、作成した各環境に対して同様の事を行う必要があるので、hogehogeという環境を作成している場合、以下のようなコマンドを実行します。(適宜hogehogeを書き換えて下さい。)

$ mv ~/anaconda3/envs/hogehoge/lib/libtk8.6.so ~/anaconda3/envs/hogehoge/lib/libtk8.6.sav
$ ln -s /usr/lib/x86_64-linux-gnu/libtk8.6.so ~/anaconda3/envs/hogehoge/lib/libtk8.6.so

これで使えるようになるはず。

注意点
Anacondaやその他の関連パッケージを更新すると、この設定が上書きされる可能性があるので、更新後は再度この手順を実行するなどの処置が必要。

原因

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.
(引用元:https://github.com/ContinuumIO/anaconda-issues/issues/6833)

ということらしいです。

日本語にすると

ソフトウェアをビルドする際、グラフィック系のものがビルドされるよりもかなり早い段階でpythonがビルドされる必要があります。FreetypeをtkinterのDEPとして追加すると、buildgraphにループが生じ、そのdistroをビルドできなくなります。
(deepL使用)

参考

下のページ非常に参考になります。

ご意見・ご指摘、感想などがありましたら、コメントお願いします。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?