簡體   English   中英

Tkinter導入filedialog錯誤

[英]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行的目的是能夠直接運行腳本,而無需指定可執行文件。 為此您需要做 -

  1. 為腳本提供可執行權限。 (使用chmod u+x <script.py>
  2. 然后將腳本運行為 - ./<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.filedialog import askopenfilename

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM