Rém*_*eau 3 python tkinter python-3.x
我正在尝试使用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)
Run Code Online (Sandbox Code Playgroud)
我已经安装了python3-tk,当我写的时候我有了演示窗口
python3 -m tkinter
Run Code Online (Sandbox Code Playgroud)
在终端.我尝试了几种不起作用的组合:
import tkinter as tk
from tkinter import filedialog
Run Code Online (Sandbox Code Playgroud)
给
ImportError : No module named tkinter
Run Code Online (Sandbox Code Playgroud)
,
import Tkinter as tk
from Tkinter import filedialog
Run Code Online (Sandbox Code Playgroud)
给
ImportError : cannot import name filedialog
Run Code Online (Sandbox Code Playgroud)
我试过_tinker,FileDialog,file_dialog,但我总是有"ImportError:无法导入名称filedialog".任何线索?
Ana*_*mar 13
tkinter.filedialog 仅适用于Python 3.
根据您的尝试,您似乎正在使用Python 2.x,尝试导入tkFileDialog
示例 -
import tkFileDialog as filedialog
Run Code Online (Sandbox Code Playgroud)
或者,检查它最终运行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)
Run Code Online (Sandbox Code Playgroud)
检查当前运行的python的版本以及正在运行的python(或python3)的位置.
最有可能的是,问题出现了,因为即使python3你的脚本中有shebang行,你很可能正在运行python <script.py>,这总是会导致python 2运行.
添加python3shebang行的目的是能够直接运行脚本,而无需指定可执行文件.为此您需要做 -
chmod u+x <script.py>)./<script.py>| 归档时间: |
|
| 查看次数: |
21162 次 |
| 最近记录: |