2011-09-21 10 views
18

में टिंकर आयात करते समय आयात त्रुटि जब मैं मानक पुस्तकालय टिंकर के साथ पायथन 3.2 का उपयोग करके जीयूआई कोड का परीक्षण करने की कोशिश कर रहा हूं लेकिन मैं पुस्तकालय आयात नहीं कर सकता। 3.x. मेंपायथन

Traceback (most recent call last): 
File "<pyshell#9>", line 1, in <module> 
from Tkinter import * 
ImportError: No module named Tkinter 

उत्तर

27

समस्या के मूल कि Tkinter मॉड्यूल Tkinter (राजधानी "टी") अजगर 2 में नामित किया गया है है .x, और tkinter (लोअरकेस "टी") पायथन 3.x में।

दोनों अजगर 2 में अपने कोड काम करने के लिए और 3 आप कुछ इस तरह कर सकते हैं:

Wildcard imports (from <module> import *) should be avoided

के बावजूद:

try: 
    # for Python2 
    from Tkinter import * 
except ImportError: 
    # for Python3 
    from tkinter import * 

हालांकि, PEP8 इस वाइल्डकार्ड आयात के बारे में क्या कहना है पीईपी 8 को अनदेखा करने वाले अनगिनत ट्यूटोरियल, आयात करने के लिए पीईपी 8-अनुरूप तरीका इस तरह होगा:

import tkinter as tk 

इस तरह से आयात करते समय, आपको tk. (उदाहरण: root = tk.Tk(), आदि) के साथ सभी tkinter आदेशों को उपसर्ग करने की आवश्यकता है। यह आपके कोड को थोड़ा और अधिक टाइपिंग के खर्च पर समझने में आसान बना देगा। यह देखते हुए कि दोनों tkinter और ttk अक्सर एक साथ उपयोग किया जाता है और एक ही नाम के साथ कक्षाओं आयात, यह एक अच्छी बात है। चूंकि Zen of python कहता है: "स्पष्ट से स्पष्ट स्पष्ट है"।

नोट: as tk भाग वैकल्पिक है, लेकिन आप एक छोटे से कम लिख करने देता है: tk.Button(...) बनाम tkinter.Button(...)

15

मॉड्यूल tkinter कहा जाता है, नहीं Tkinter,:

from Tkinter import * 

root = Tk() 
w = Label(root, text="Hello, world!") 
w.pack() 
root.mainloop() 

खोल रिपोर्ट इस त्रुटि:

यह मेरा परीक्षण कोड है

8
3.x के लिए के रूप में tkinter (लोअरकेस) Tkinter साथ इस प्रकार कोड पुनर्लेखन

:

from tkinter import * 

root = Tk() 

w = Label(root, text="Hello, world!") 
w.pack() 

root.mainloop()