Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tkinter导入文件对话框错误_Python_Python 3.x_Tkinter - Fatal编程技术网

Python Tkinter导入文件对话框错误

Python Tkinter导入文件对话框错误,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我正在尝试将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 c

我正在尝试将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)
我已经安装了python3tk,并且在编写时有演示窗口

python3 -m tkinter 
在候机楼。我尝试了几种不起作用的组合:

import tkinter as tk
from tkinter import filedialog
给予

ImportError : No module named tkinter
ImportError : cannot import name filedialog
,

给予

ImportError : No module named tkinter
ImportError : cannot import name filedialog

我试过使用_tinker、FileDialog、file_dialog,但我总是使用“ImportError:无法导入名称FileDialog”。有任何线索吗?

应该是tkinter导入文件对话框中的
或者您可以尝试从tkinter导入中的
或作为fd导入tkinter.filedialog
。如果它不能像那样工作,那么您应该尝试重新安装python。

tkinter.filedialog
仅适用于Python3

从您的尝试来看,似乎您正在使用
python2.x
,请尝试导入
tkFileDialog

范例-

import tkFileDialog as filedialog

或者,检查为什么它最终运行的是Python2.x,而不是Python3.x

Tkinter
模块仅在Python2中存在,Python3具有
Tkinter
模块,因为导入
Tkinter
时成功导入,但导入
Tkinter
时导入失败,我们可以确定您最终运行的是Python2.x而不是Python3

你能行-

import sys
print(sys.version)
print(sys.executable)
检查当前运行的python版本以及正在运行的
python
(或
python3
)的位置


最有可能的原因是,尽管脚本中有
python3
shebang行,但您很可能正在运行
python
,这总是导致python2运行

添加
python3
shebang行的目的是能够直接运行脚本,而无需指定可执行文件。为此,你需要这样做-

  • 为脚本授予可执行权限。(使用
    chmodu+x
  • 然后以-
    /

  • 用于上述蟒蛇3

    from
    tkinter.filedialog
    import
    askopenfilename


    事实上,它正在运行python2:
    2.7.6(默认值,2015年6月22日,17:58:13)[GCC 4.8.2]/usr/bin/python
    我正在试图弄清楚如何让它运行python3,它返回
    /usr/bin/python3
    ,我把它放在迷你代码的头中。它仍然返回2.7.6版本。我正在考虑尝试运行
    alias python=python3
    试着运行
    /usr/bin/python3
    ,看看它是否真的是python3,其次,您如何将它放在标题中?在linux上运行它会返回
    python3.4.0(默认值,2015年6月19日,14:20:21)[GCC 4.8.2]。我对python非常陌生,我称之为“header”的是我代码的前3行:
    #/usr/bin/env python3#-*-编码:utf-8-*-#-——python3.4
    我猜在添加了
    shebang
    (这是标题的第一行的名称)之后,您正在尝试使用
    Python
    运行,这将始终运行python2,添加shebang的原因是能够运行而不必指定可执行文件,只需运行-
    /.py
    或运行-
    python3 script.py