環境情報
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使用)
参考
下のページ非常に参考になります。
ご意見・ご指摘、感想などがありましたら、コメントお願いします。