ImportError: '_tkinter' adında bir dosya yok, lütfen python3-tk paketini kurun


28

Genel olarak Ubuntu ve Linux'ta yeniyim.

Dizüstü bilgisayarımda çift önyükleme işletim sistemi oluşturdum (Windows 10 ve Ubuntu).

  • Yazma: sudo apt-get install python3-tk(veya hatta python-tk) işe yaramadı.
  • python3-devVeya python-devel(şanssız) yüklemeye çalışıyorum .
  • Elle yüklemek için Tcl ve Tk indiriliyor.

Windows 10 Bash Alt Sisteminde Tk ve Tcl zaten var, bu yüzden Ubuntu'nun zaten sahip olduğunu düşündüm. Ancak, Ubuntu masaüstümü Python GUI uygulamaları geliştirmek için kullanmak istiyorum.

Peki, GUI geliştirme için Python 3.5'te kullanılacak Tcl / Tk'yi nasıl yükleyebilirim?

Python 3.5.2 para cezası yükledim ancak GUI modüllerinin etkin olması gerekiyor.

Tk’ın çalıştığını test etmek için kod:

  1. tip python3
  2. Tür:

    import tkinter   
    tkinter._test()
  3. Sonuç: bir GUI açılır penceresi görüntüleniyor This is a Tcl/Tk version..


3
"Python 3.5.2'yi yükledim" - nasıl? eğer elle yüklenen bir python kullanıyorsanız, apt-get ile sistem python paketlerini kurmak pek mümkün değildir
steeldriver

1
Kendi sorunuza vereceğiniz cevabın Tcl / Tk'yi kaynaktan derlemekten kaynaklandığını gördüm, ancak Python'u manuel olarak kurmadan (yani, Apt paket yöneticisini kullanmadan) gerekmediğini düşünüyorum. Python'u manuel olarak kurup kurmadığınızı açıklayabilir misiniz? python3-tk
Sağladığınız

Yanıtlar:


30

6
Not - python3.5 benim varsayılan benim python3.6 için, kullanmak zorundaydım ... install python3.6-tk ....
SteveJ

+1. Bunu okuyanlar için, tkinter'ın bir PyPI paketine sahip görünmediğini ve böylece bu cevabda önerildiği gibi Ubuntu paket yöneticisini kullanmanın bir sonraki en iyi seçenek olduğunu ekleyeceğim.
dpritch

1
@dpritch [pypibrowser] (denilen Evren depoda mevcut bir paket var packages.ubuntu.com/... ben aradığınız inanıyoruz işlevselliği sağlayan Şerefe.!
Elder Geek

python3-tkinterBenim için dnfen azından Fedora'da .
Pysis

@Pysis Yaşadığınız herhangi bir karışıklık için özür dilerim. Tüm bu gibi bu cevap Ubuntu hakkında. Turdan faydalanabilirsiniz . İlk cümle, açık bir şekilde anlaşılırsa, burada daha fazla netlik olduğunu açıkça belirtir . Şerefe!
Elder Geek

26

"Sistem" python (Ubuntu) olarak Python 3.5 ile bir python 3.6 sanal ortamı için, eşleşmesi için tk 3.6 kurmam gerekti;

sudo apt-get install python3.6-tk

Ubuntu'daki varsayılan python'um 3.5 idi, bu yüzden 3.6 için bir venv kullanırken, alma hatası alırdım. Beni bir süre deli etti.

[Düzenle: Bu soru yaşlandıkça]

Genel olarak, biri temel makineninkinden farklı bir sürümde bir python içeren sanal bir ortam kullanıyorsa, sanal ortamda kullanılan python sürümü için tk'yi yüklemeniz gerekir.

sudo apt install python3.x-tk

3.x sanal ortam sürümüyle eşleşirse.

[Düzenle]

Tk için havuz eklemek gerekebilir. Tecrübelerime göre, python3.6 kullandığım depo ile aynıydı, ancak zamanla değişebilir;

sudo add-apt-repository ppa:deadsnakes/ppa

1
İlginç. Hangi PPA'yı kurduğunuzu , şu anda depolarda python3.6-tk'nin var olmadığını görebildiğim kadarıyla açıklamak için gidebilirsiniz .
Elder Geek

1
Daha güncel hale getirmek için daha fazla düzenleme yaptım.
Elder Geek

3
EN SONUNDA! Bu sudo apt-get install python3-tkolmadığında benim için çalıştı . Teşekkürler
Peter

2
Python 3.7 sudo apt-get install python3.7-tkiçin çalışması için kullanmak zorundaydım
ilias

Öyleydi. Stackoverflow'un on iki sayfasında benim için çalışan tek çözüm.
Avio

0

Kaynaktan yükleme yaparken bu ilginç olabilir (çoğu python kullanıcısının kullanmayacağı):

Tcl ve tk kurduktan sonra .

Python sürümünüze geri dönün make. Ve, eğer çoklu versiyon pythonmevcutsa, a make altinstall.

  1. Python3.5'i açın
  2. yazın:

    import tkinter
    tkinter._test()
  3. sonuçlar Tamam - pop GUI açıldı ve beklendiği gibi çalışıyor.


2
-1 Bu, çoğu kişi kaynaktan değil paket paketiyle kurulacağı için geçerli olmayacak.
RockJake28

değil şaşırtmak ve hala birileri yardımcı olabilir böylece, giriş eklendi
mit

0

Benim durumumda, aşağıdakileri yapmak yerine python3.5 için "ImportError: '_tkinter' isimli modül yok" ile aynı hatayı alıyordum : - Python3-tk ve tkinter-dev'in kurulumu - Tkinter dizini / içinde mevcut usr / lib / python3.5.

Gözlemlenen hata aşağıdaki dosyadandı:

" /Usr/local/lib/python3.5/tkinter/ init .py" dosyası , satır 35, içe aktarma _tkinter # Bu başarısız olursa, Python'unuz Tk için yapılandırılmamış olabilir

Ancak, / usr / bin gibi python komutunu /usr/bin/python3.5 terminalinden basitçe çalıştırdığımda, benim için çalıştı!

Kısacası, terminalden çalıştırılan python versiyonunun, tkinter'ın kurulu ve yapılandırılmış olduğundan emin olun :)

Varsayılan python2.7 ve python3.5 ile gelen sistemime Ubuntu16.04 yüklendim


0

Sadece kütüphane dosyalarını yüklemek, onu geliştirmek için kütüphane kullanmak istemediğiniz için çalışmayabilir.

Bu benim için çalıştı:

$ sudo apt install tk8.6-dev

bu soruya cevap verirken, belki yukarıdaki komutun ne yaptığını ve sorunu neden çözebileceğini açıklamak için genişletebilirsiniz.
Joshua Besneatte

ismailarilik Ne @JoshuaBesneatte sadece requester komutlar vermek yok, ama o / o bunu uygulamak neden komutları ne açıklamak ve: söylemek çalışıyor. Halen, cevabınız kalite yetersizliğinden dolayı silinmiş olabilir ... :-(
Fabby
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.