[英]Tkinter import filedialog error
我正在嘗試使用tkinter和python3來打開圖像,這里看到一段代碼:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# --- Python 3.4
from PIL import Image
import Tkinter as tk
from Tkinter import filedialog
import numpy as np
import os
var = 'n'
# Importing the image to correct
while var != 'o' :
var = raw_input("Press \"o\" to open the image to correct\n")
var = var.lower()
root = tk.Tk()
root.withdraw()
path = filedialog.askopenfilename()
image_test = Image.open(path)
我已經安裝了python3-tk,當我寫的時候我有了演示窗口
python3 -m tkinter
在終端。 我嘗試了幾種不起作用的組合:
import tkinter as tk
from tkinter import filedialog
給
ImportError : No module named tkinter
,
import Tkinter as tk
from Tkinter import filedialog
給
ImportError : cannot import name filedialog
我試過_tinker,FileDialog,file_dialog,但我總是有“ImportError:無法導入名稱filedialog”。 任何線索?
tkinter.filedialog
僅適用於Python 3。
根據您的嘗試,您似乎正在使用Python 2.x
,嘗試導入tkFileDialog
示例 -
import tkFileDialog as filedialog
或者,檢查它最終運行Python 2.x而不是Python 3.x的原因。
Tkinter
模塊僅存在於python 2中,python 3具有tkinter
模塊,因為在導入Tkinter
它成功導入,但是在導入tkinter
時無法導入它,我們可以確定你最終運行的是Python 2.x而不是Python 3。
你可以做 -
import sys
print(sys.version)
print(sys.executable)
檢查當前運行的python的版本以及正在運行的python
(或python3
)的位置。
最有可能的是,問題出現了,因為即使你的腳本中有python3
shebang行,你很可能正在運行python <script.py>
,這總是會導致python 2運行。
添加python3
shebang行的目的是能夠直接運行腳本,而無需指定可執行文件。 為此您需要做 -
chmod u+x <script.py>
) ./<script.py>
它應該from tkinter import filedialog
或者您可以嘗試from tkinter import *
import tkinter.filedialog as fd
from tkinter import *
或import tkinter.filedialog as fd
。 如果它不能那樣工作,那么你應該嘗試重新安裝python。
對於上面的python3
from
tkinter.filedialogimport
askopenfilename
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.