我正在尝试将 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,写的时候有demo窗口
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:无法导入名称文件对话框”。任何线索?
原文由 Rémi Vennereau 发布,翻译遵循 CC BY-SA 4.0 许可协议
tkinter.filedialog
仅适用于 Python 3。从您的尝试来看,您似乎正在使用
Python 2.x
,尝试导入tkFileDialog
例子 -
或者,检查为什么它最终运行 Python 2.x 而不是 Python 3.x 。
Tkinter
module is only there in python 2 , python 3 hastkinter
module, since when importingTkinter
it is successfully getting imported, but when importingtkinter
导入失败,我们可以确定您最终运行的是 Python 2.x 而不是 Python 3。你可以做 -
检查当前运行的 python 版本以及正在运行的
python
(或python3
)的位置。最有可能的是,问题的发生是因为即使你的脚本中有
python3
shebang 行,你很可能正在运行python <script.py>
,这总是导致 python 2 运行。添加
python3
shebang 行的目的是能够直接运行脚本,而无需指定可执行文件。为此你需要做 -chmod u+x <script.py>
)./<script.py>