ImportError: Brak nazwy „_tkinter”, zainstaluj pakiet python3-tk


28

Jestem nowy w Ubuntu i Linuksie w ogóle.

Utworzyłem podwójny system operacyjny na moim laptopie (Windows 10 i Ubuntu).

  • Pisanie: sudo apt-get install python3-tk(a nawet python-tk) nie działało.
  • Próbuję zainstalować python3-devlub python-devel(bez powodzenia).
  • Pobieranie Tcl i Tk do ręcznej instalacji.

W Windows 10 Bash Subsystem Tk i Tcl są już włączone, więc pomyślałem, że Ubuntu już je ma. Ale chcę używać mojego pulpitu Ubuntu do programowania aplikacji GUI w języku Python.

Jak więc zainstalować Tcl / Tk, który będzie używany w Pythonie 3.5 do programowania GUI?

Ładowałem dobrze Python 3.5.2, ale potrzebuję włączonych modułów GUI.

Kod do testowania działania Tk to:

  1. Rodzaj python3
  2. Rodzaj:

    import tkinter   
    tkinter._test()
  3. Wynik: wyskakujące okienko GUI This is a Tcl/Tk version..


3
„Załadowałem Python 3.5.2” - jak dokładnie? jeśli korzystasz z ręcznie zainstalowanego Pythona, to raczej nie jest pomocne instalowanie systemowych pakietów Pythona za pomocą apt-get
steeldriver 23.08.16

1
Widziałem, że twoją odpowiedzią na twoje pytanie jest skompilowanie Tcl / Tk ze źródła, ale nie sądzę, że jest to konieczne, chyba że ręcznie zainstalowałeś Python, tj. Bez użycia menedżera pakietów Apt. Czy możesz wyjaśnić, czy ręcznie zainstalowałeś Python? Zainstalowanie, python3-tka następnie uruchomienie podanego kodu Python działa w moim systemie Python 3.
edwinksl

Odpowiedzi:


30

6
Uwaga - dla python3.6, w którym python3.5 był moim domyślnym, musiałem użyć ... zainstalować python3.6-tk ....
SteveJ

+1. Dodałbym dla tych, którzy to czytają, że tkinter nie wydaje się mieć pakietu PyPI, więc użycie menedżera pakietów Ubuntu zgodnie z sugestią w tej odpowiedzi jest prawdopodobnie kolejną najlepszą opcją.
dpritch

1
@dpritch W repozytorium Wszechświata dostępny jest pakiet o nazwie [pypibrowser] ( packages.ubuntu.com/…, który zapewnia funkcjonalność, o której wierzę, że jej szukasz. Pozdrowienia!
Starszy Geek

python3-tkinterdnfprzynajmniej dla mnie na Fedorze .
Pysis

@Pysis Przepraszam za wszelkie nieporozumienia, które mogły wystąpić. Ta odpowiedź, podobnie jak cała ta strona, dotyczy Ubuntu. Możesz skorzystać z wycieczki. W pierwszym zdaniu jest dość jasne, jeśli nie, dalsze wyjaśnienia są dostępne tutaj. Twoje zdrowie!
Elder Geek,

26

W środowisku wirtualnym Python 3.6 z Pythonem 3.5 jako „systemowym” pytonem (Ubuntu) musiałem zainstalować TK 3.6 w celu dopasowania;

sudo apt-get install python3.6-tk

Mój domyślny python w Ubuntu to 3.5, więc gdy korzystam z venv dla 3.6, dostaję błąd importu. Doprowadziło mnie to do szaleństwa.

[Edytuj: W miarę starzenia się tego pytania]

Zasadniczo wydaje się, że jeśli używasz środowiska wirtualnego z pythonem innej wersji niż wersja maszyny bazowej, musisz zainstalować tk dla wersji Pythona używanej w środowisku wirtualnym.

sudo apt install python3.x-tk

Gdzie 3.x pasowałoby do wersji środowiska wirtualnego.

[Edytować]

Konieczne może być dodanie repozytorium dla tk. Z mojego doświadczenia wynika, że ​​było to to samo repozytorium, z którego ściągnąłem python3.6, ale z czasem może się to zmieniać;

sudo add-apt-repository ppa:deadsnakes/ppa

1
Ciekawy. Możesz posunąć się do wyjaśnienia, z którego PPA zainstalowałeś go, o ile widzę, że python3.6-tk nie istnieje w repozytoriach w tej chwili.
Elder Geek

1
Dokonałem dalszej edycji, aby uczynić ją bardziej aktualną.
Starszy Geek

3
WRESZCIE! To działało dla mnie, kiedy sudo apt-get install python3-tknie. Dzięki
Peter

2
W przypadku python 3.7 musiałem użyć sudo apt-get install python3.7-tkgo, aby działał
ilias

To było to. Jedyne rozwiązanie, które działało dla mnie na dwunastu stronach Stackoverflow.
Avio

0

Może to być interesujące podczas instalacji ze źródła (czego nie zrobi większość użytkowników Pythona):

Po zainstalowaniu tcl i tk .

Wróć do swojej wersji Python, zrób make. A jeśli pythonistnieje wiele wersji , wykonaj make altinstall.

  1. Otwórz Python3.5
  2. rodzaj:

    import tkinter
    tkinter._test()
  3. wyniki OK - otwarty GUI pop i działa zgodnie z oczekiwaniami.


2
-1 Nie będzie to miało znaczenia dla większości ludzi, ponieważ większość instaluje się za pomocą menedżera pakietów, a nie ze źródła.
RockJake28,

dodano wprowadzenie, aby nie mylić i nadal może komuś pomóc
mit

0

W moim przypadku otrzymywałem ten sam błąd, co „ImportError: Brak modułu o nazwie„ _tkinter ”” dla python3.5, pomimo wykonywania następujących czynności: - Instalowanie python3-tk i tkinter-dev - Katalog Tkinter jest dostępny w / usr / lib / python3.5.

Zaobserwowany błąd pochodzi z następującego pliku:

Plik „/usr/local/lib/python3.5/tkinter/ init .py”, wiersz 35, w imporcie _tkinter # Jeśli to się nie powiedzie, Twój Python może nie zostać skonfigurowany dla Tk

Jednak kiedy po prostu uruchomiłem pytona z / usr / bin jak /usr/bin/python3.5 z terminala, zadziałało to dla mnie!

Krótko mówiąc, po prostu upewnij się, że wersja Pythona uruchamiana z terminala ma zainstalowany i skonfigurowany tkinter :)

Mam Ubuntu16.04 zainstalowany w moim systemie, który jest dostarczany z domyślnymi python2.7 i python3.5


0

Instalowanie samych plików bibliotek może nie działać, ponieważ chcesz korzystać z samej biblioteki, aby jej nie rozwijać.

To działało dla mnie:

$ sudo apt install tk8.6-dev

chociaż może to odpowiedzieć na pytanie, być może możesz je rozwinąć, aby wyjaśnić, co robi powyższe polecenie i dlaczego może rozwiązać problem?
Joshua Besneatte

ismailarilik To, co @ JoshuaBesneatte próbuje powiedzieć, to: nie tylko dawaj komendie polecenia, ale wyjaśnij, co robią polecenia i dlaczego powinien je zastosować. W tej chwili Twoja odpowiedź prawdopodobnie zostanie usunięta z powodu braku jakości ... :-(
Fabby
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.