Kodun, IDLE'nin run module f5
komutu aracılığıyla çalıştırıldığında, komut satırından çalıştırıldığında kodun hata vermesinin bir nedeni var mı?Neden tkinter modülü, komut satırı üzerinden çalıştırılırken öznitelik hatasını artırıyor, ancak IDLE yoluyla çalıştırılmıyor mu?
Geçtiğimiz günlerde kodumun okunabilirliğini ve sağlamlığını geliştirmeye çalışıyorum. Sonuç olarak, tüm from module import *
satırlarını kaldırmaya çalışıyorum. Ben from tkinter import *
kullanmak için kullanılan ve benim kod satırı mükemmel iyi çalıştı:
self.path = filedialog.askdirectory()
Ama şimdi import tkinter as tk
için from tkinter import *
değişti ve ben buna göre kod değişti:
self.path = tk.filedialog.askdirectory()
A GUI.py adlı dosya şu dosyayı şu şekilde içe aktarır: from lib.filesearch import *
(belirtilen kod satırı dosya arama dosyasında bulunur.)
Kodumu IDLE aracılığıyla çalıştırıyorum ve her şey yolunda. Benim GUI hala çalışıyor ve ben pencere komut satırı kodu çalıştırdığınızda, ancak normale gibi çalışır self.path = tk.filedialog.askdirectory()
hat hata alıyorum: my kodundan ilgili bitlerini İşte
AttributeError: 'module' object has no attribute 'filedialog'
şunlardır: FileSearch itibaren
. py thi aksine
import tkinter as tk
def get_path(self):
"""Store user chosen path to search"""
self.paths = tk.filedialog.askdirectory(initialdir = FileSearch.DEFAULT)
return self.paths
GUI.py
itibarenfrom lib.filesearch import *
def Browse(self):
self.BrowseB['state']='disabled'
self.p=self.CrawlObj.get_path()
self.AddText('Searching from Path: ' + str(self.p))
self.BrowseB['state']='normal'
s question Sadece bir sürümü yüklü python var. Yani, Python34.
Gerçekten neyi içe aktardığını görmek için basit bir hata ayıklama 'print (tk)' yazmayı deneyin. Başlangıçta farklı python yolları akla geliyor. –
@Ilja'dan IDLE: '' ve komut satırından: ' ' –
Dzhao
Tamam, çizim tahtasına geri döndü. –