ImportError: ไม่มีชื่อ '_tkinter' โปรดติดตั้งแพ็คเกจ python3-tk


28

ฉันใหม่สำหรับ Ubuntu และ Linux โดยทั่วไป

ฉันสร้างระบบปฏิบัติการบูทคู่บนแล็ปท็อปของฉัน (Windows 10 และ Ubuntu)

  • การพิมพ์: sudo apt-get install python3-tk(หรือแม้กระทั่งpython-tk) ไม่ทำงาน
  • กำลังพยายามติดตั้งpython3-devหรือpython-devel(ไม่มีโชค)
  • กำลังดาวน์โหลด Tcl และ Tk เพื่อติดตั้งด้วยตนเอง

ในระบบย่อย 10 Bash ของ Windows Tk และ Tcl นั้นรวมอยู่ด้วยดังนั้นฉันคิดว่า Ubuntu มีแล้ว แต่ฉันต้องการใช้ Ubuntu บนเดสก์ท็อปของฉันเพื่อพัฒนาแอพ Python GUI

ดังนั้นฉันจะติดตั้ง Tcl / Tk เพื่อใช้ใน Python 3.5 สำหรับการพัฒนา GUI ได้อย่างไร

ฉันโหลด Python 3.5.2 ได้ดี แต่ต้องเปิดใช้งานโมดูล GUI

รหัสเพื่อทดสอบว่า Tk ใช้งานได้:

  1. ชนิด python3
  2. ประเภท:

    import tkinter   
    tkinter._test()
  3. ผลลัพธ์: การแสดงป๊อปอัป GUI This is a Tcl/Tk version..


3
"ฉันโหลด Python 3.5.2" - แน่นอนขนาดไหน? ถ้าคุณกำลังใช้งานไพ ธ อนที่ติดตั้งด้วยตนเองดังนั้นการติดตั้งแพ็กเกจระบบไพ ธ อนด้วย apt-get นั้นไม่น่าจะช่วยได้
steeldriver

1
ฉันเห็นว่าคำตอบของคุณสำหรับคำถามของคุณคือการรวบรวม Tcl / Tk จากแหล่งที่มา แต่ฉันไม่คิดว่าเป็นสิ่งจำเป็นเว้นแต่คุณจะติดตั้ง Python ด้วยตนเองเช่นโดยไม่ต้องใช้ตัวจัดการแพ็คเกจ Apt คุณช่วยอธิบายได้ไหมถ้าคุณติดตั้ง Python ด้วยตนเอง? การติดตั้งpython3-tkและเรียกใช้รหัส Python ที่คุณให้ไว้ทำงานในระบบ Python 3 ของฉัน
edwinksl

คำตอบ:


30

sudo apt-get install python3-tkติดตั้งtkinterสำหรับ Python3.xx

แหล่งที่มา:

https://stackoverflow.com/questions/6084416/tkinter-module-not-found-on-ubuntu https://pythonprogramming.net/python-3-tkinter-basics-tutorial/


6
หมายเหตุ - สำหรับ python3.6 ซึ่ง python3.5 เป็นค่าเริ่มต้นของฉันฉันต้องใช้ ... ติดตั้ง python3.6-tk ....
SteveJ

+1 ฉันจะเพิ่มสำหรับผู้ที่อ่านข้อความนี้ว่า tkinter ดูเหมือนจะไม่มีแพ็คเกจ PyPI ดังนั้นการใช้ตัวจัดการแพคเกจ Ubuntu ตามที่แนะนำในคำตอบนี้น่าจะเป็นตัวเลือกที่ดีที่สุด
dpritch

1
@dpritch มีแพ็คเกจที่มีอยู่ในที่เก็บของจักรวาลที่เรียกว่า [pypibrowser] ( packages.ubuntu.com/ซึ่งให้ฟังก์ชั่นที่ผมเชื่อว่าคุณกำลังมองหาไชโย!
Elder Geek

python3-tkinterสำหรับฉันใน Fedora dnfอย่างน้อยที่สุด
Pysis

@ รูปแบบฉันขอโทษสำหรับความสับสนที่คุณอาจมีประสบการณ์ คำตอบเช่นนี้ทั้งเว็บไซต์นี้เกี่ยวกับอูบุนตู คุณอาจได้รับประโยชน์จากทัวร์ ประโยคแรกทำให้ชัดเจนถ้าไม่มีความชัดเจนเพิ่มเติมที่นี่ ไชโย!
Elder Geek

26

สำหรับสภาพแวดล้อมเสมือน python 3.6 ที่มี Python 3.5 เป็น "ระบบ" python (Ubuntu) ฉันต้องติดตั้ง tk 3.6 เพื่อให้ตรงกับ;

sudo apt-get install python3.6-tk

ไพ ธ อนเริ่มต้นของฉันในอูบุนตูคือ 3.5 ดังนั้นเมื่อใช้ venv สำหรับ 3.6 ฉันจะได้รับข้อผิดพลาดในการนำเข้า ทำให้ฉันบ้าไปครู่หนึ่ง

[แก้ไข: ตามคำถามนี้ทุกเพศทุกวัย]

โดยทั่วไปดูเหมือนว่าหากมีการใช้สภาพแวดล้อมเสมือนกับงูหลามของรุ่นที่แตกต่างจากเครื่องฐานคนหนึ่งจะต้องติดตั้ง tk สำหรับรุ่นของงูหลามที่ใช้ในสภาพแวดล้อมเสมือน

sudo apt install python3.x-tk

ที่ 3.x จะตรงกับรุ่นของสภาพแวดล้อมเสมือน

[แก้ไข]

อาจจำเป็นต้องเพิ่มที่เก็บสำหรับ tk จากประสบการณ์ของฉันมันเป็นที่เก็บเดียวกันกับที่ฉันดึง python3.6 แต่มันอาจเปลี่ยนไปตามเวลา

sudo add-apt-repository ppa:deadsnakes/ppa

1
น่าสนใจ คุณอาจไปไกลถึงอธิบาย PPA ที่คุณติดตั้งจากเท่าที่ฉันเห็นpython3.6-tk ไม่มีอยู่ในที่เก็บในขณะนี้
Elder Geek

1
ฉันทำการแก้ไขเพิ่มเติมในความพยายามที่จะทำให้เป็นปัจจุบันมากขึ้น
เอ็ลเดอ

3
ในที่สุด! นี่คืองานสำหรับฉันเมื่อsudo apt-get install python3-tkไม่ได้ ขอบคุณ
ปีเตอร์

2
สำหรับ python 3.7 ฉันต้องใช้sudo apt-get install python3.7-tkเพื่อให้มันทำงาน
ilias

นั่นมัน ทางออกเดียวที่ทำงานสำหรับฉันในสิบสองหน้าของ Stackoverflow
Avio

0

สิ่งนี้อาจน่าสนใจเมื่อติดตั้งจากแหล่งที่มา (ซึ่งผู้ใช้ python ส่วนใหญ่ไม่ต้องการ):

หลังจากติดตั้งTCL และ tk

กลับไปใช้ Python เวอร์ชันของmakeคุณ และถ้าหลายรุ่นของที่มีอยู่ให้ทำpythonmake altinstall

  1. เปิด Python3.5
  2. พิมพ์:

    import tkinter
    tkinter._test()
  3. ผลลัพธ์ตกลง - ป๊อปอัป GUI เปิดและทำงานตามที่คาดไว้


2
-1 สิ่งนี้จะไม่เกี่ยวข้องกับคนส่วนใหญ่เนื่องจากส่วนใหญ่จะติดตั้งผ่านตัวจัดการแพคเกจแทนที่จะมาจากแหล่งที่มา
RockJake28

เพิ่มคำแนะนำจึงจะไม่สับสนและยังอาจช่วยให้คน
mit

0

ในกรณีของฉันฉันได้รับข้อผิดพลาดเช่นเดียวกับ"ImportError: ไม่มีโมดูลชื่อ '_tkinter'"สำหรับpython3.5ทั้งๆที่ทำสิ่งต่าง ๆ ต่อไปนี้: - การติดตั้ง python3-tk และ tkinter-dev - ไดเรกทอรี Tkinter มีอยู่ใน / usr / lib / python3.5

ข้อผิดพลาดที่สังเกตได้มาจากไฟล์ต่อไปนี้:

ไฟล์ "/usr/local/lib/python3.5/tkinter/ init .py", บรรทัดที่ 35, ในการนำเข้า _tkinter # หากล้มเหลว Python ของคุณอาจไม่ได้รับการกำหนดค่าสำหรับ Tk

อย่างไรก็ตามเมื่อฉันวิ่งไพ ธ อนจาก / usr / bin เช่น/usr/bin/python3.5จากเทอร์มินัลมันก็ใช้ได้สำหรับฉัน!

ในระยะสั้นเพียงตรวจสอบให้แน่ใจว่าเวอร์ชันไพ ธ อนที่รันจากเทอร์มินัลมีการติดตั้งและกำหนดค่า tkinter :)

ฉันติดตั้ง Ubuntu16.04 ไว้ในระบบของฉันซึ่งมาพร้อมกับ python2.7 เริ่มต้นและ python3.5


0

การติดตั้งเพียงไฟล์ไลบรารีอาจไม่ทำงานเนื่องจากคุณต้องการใช้ไลบรารีเอง แต่ไม่ได้พัฒนา

สิ่งนี้ใช้ได้กับฉัน:

$ sudo apt install tk8.6-dev

ในขณะที่สิ่งนี้อาจตอบคำถามคุณอาจขยายเพื่ออธิบายว่าคำสั่งข้างต้นทำอะไรและทำไมจึงสามารถแก้ไขปัญหาได้
Joshua Besneatte

ismailarilikสิ่งที่@JoshuaBesneatteกำลังพยายามพูดคือ: ไม่เพียง แต่ให้คำสั่งแก่ผู้ร้องขอ แต่อธิบายว่าคำสั่งทำอะไรและทำไมเขา / เธอจึงควรนำไปใช้ คำตอบของคุณน่าจะถูกลบเนื่องจากขาดคุณภาพ ... :-(
Fabby
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.