Python application doesn't find tkinter but it's installed

If I try in Console:

Traceback (most recent call last):
File “/home/(myusername)/Dokumente/Programmieren/Python/SpielTkinter.py”, line 1, in
import tkinter as tk
File “/usr/lib/python3.10/tkinter/init.py”, line 37, in
import _tkinter # If this fails your Python may not be configured for Tk
ImportError: libtk8.6.so: cannot open shared object file: No such file or directory

Try:

$ pip3 show tkinter

To see if tkinter is installed. If so, remove this line in your code:

import tkinter as tk

And add this two lines:

from tkinter import *
from tkinter.ttk import *

Answer this please.

What command did you use?
Is your system up-to-date?

tkinter is part of the python package, you don’t need to install anything

sudo pacman -Fy /usr/lib/python3.10/tkinter/__init__.py

# should return this
usr/lib/python3.10/tkinter/__init__.py is owned by core/python 3.10.9-1

/usr/lib/libtk8.6.so is owned by tk, so either it’s not installed, it’s an earlier version, or it’s been deleted somehow.

pacman -Qs tk

Try this:

sudo pacman -Syu tk python

@Arrababiski

Why? The usually recommended way is to not import using *. I have no experience with tkinter, but import tkinter as tk works for me (in idle).

The error seems to be coming from tkinter itself, not OP’s code. Probably a partial update, or tk not being installed. Whatever they installed might also cause problems.

1 Like

I used: pip install tk
my system is up to date
And I used import tkinter as tk

I meant the pacman command too.

Please give the output of:

Fehler: GPGME-Fehler: Keine Daten
Fehler: GPGME-Fehler: Keine Daten
Fehler: GPGME-Fehler: Keine Daten
Fehler: GPGME-Fehler: Keine Daten
:: Paketdatenbanken werden synchronisiert …
 core                 1597,9 KiB  4,51 MiB/s 00:00 [######################] 100%
 extra                   9,6 MiB  12,0 MiB/s 00:01 [######################] 100%
 community              34,8 MiB  12,2 MiB/s 00:03 [######################] 100%
 multilib              253,9 KiB  5,39 MiB/s 00:00 [######################] 100%
Fehler: GPGME-Fehler: Keine Daten
Fehler: GPGME-Fehler: Keine Daten
Fehler: GPGME-Fehler: Keine Daten
Fehler: GPGME-Fehler: Keine Daten
Fehler: Keine Datenbank konnte synchronisiert werden (Ungültige oder beschädigte Datenbank (PGP-Signatur))

Sorry my system is in German. Fehler means Error


Moderator edit: In the future, please use proper formatting: [HowTo] Post command output and file content as formatted text

1 Like

I ran the Skript but nothing changed. It’s still the same error.

Stop mixing local and system Python packages.

Please see:

1 Like

I’ll do! Thank You!

Now this is the output of sudo pacman -Fy /usr/lib/python3.10/tkinter/init.py:


core                 1597,9 KiB  1216 KiB/s 00:01 [######################] 100%
 extra                   9,6 MiB   644 KiB/s 00:15 [######################] 100%
 community              34,8 MiB   865 KiB/s 00:41 [######################] 100%
 multilib              253,9 KiB   897 KiB/s 00:00 [######################] 100%
usr/lib/python3.10/tkinter/__init__.py ist in core/python 3.10.9-1 enthalten

But it still dont works.

Now it’s your turn. Please edit your post accordingly. :wink:

Sorry. I’m very new but know it shpuld be fine.

tk 0.1.0 Jul 8, 2019
TensorKit is a deep learning helper between Python and C++.

tkinter is a core python module, you don’t have to install it.

That should be satisfied by the package extra/tk.

2 Likes

Well, it’s an easy way to directly load tkinter. If it works and import tkinter as tk does not, you may have something already defined as tk. That’s what seems to happen, the op has tensorkit package as tk.

You are installing tk package, tk is tensorkit, not tkinter. Then you try to load tkinter also as tk, may be there’s a name conflict between both.

Uninstall tk package if you don’t need it and the problem importing tkinter may be solved.

I see you don’t like to read tracebacks. :grin:

They installed tensorkit, which makes it available to import, presumably like so: import tk or import tk as tensorkit.

However they imported tkinter, which in turn imported _tkinter which complained that libtk8.6.so is missing.

libtk8.6.so is owned by the tk package in the repos (not to be confused with tensorkit), so either OP has an old version, it’s not installed, or something weird is going on.

1 Like

I deinstalled tk and changed my code to your suggestion, but there is still the same error. If i run:
$ pip3 show tkinter
then there is the output:
WARNING: Package(s) not found: tkinter

Looking at it calmly, @dmt is right, the libtk8.6.so library that comes with the tk package is missing. You can check if it is in your system with this command:

ls /usr/lib/libtk8.6.so

That library comes with the manjaro tk package. You can install it with:

pacman -S tk

1 Like

The tk package is missing. But if I try:

pacman -S tk

there is an error:

resolving dependencies...
looking for conflicting packages...

Packages (1) tk-8.6.13-1

Total Download Size:   1.90 MiB
Total Installed Size:  4.84 MiB

:: Proceed with installation? [Y/n] y
:: Retrieving packages...
 tk-8.6.13-1-x86_64   1942.1 KiB   870 KiB/s 00:02 [######################] 100%
(1/1) checking keys in keyring                     [######################] 100%
(1/1) checking package integrity                   [######################] 100%
error: tk: signature from "Antonio Rojas <arojas@archlinux.org>" is unknown trust
:: File /var/cache/pacman/pkg/tk-8.6.13-1-x86_64.pkg.tar.zst is corrupted (invalid or corrupted package (PGP signature)).
Do you want to delete it? [Y/n] y
error: failed to commit transaction (invalid or corrupted package (PGP signature))
Errors occurred, no packages were upgraded.

Bad signature, refresh keyring with:

sudo pacman -Sy archlinux-keyring manjaro-keyring

If you have more trouble with Keys:

1 Like