Python隐含路径适用于XP,但不适用于windows 7



我正在学习使用Python和tkinter作为爱好。

我在不同的地方有两个系统:一个是XP (SP3),另一个是Win7 (SP1)。

这个问题的代码片段如下:

import tkinter
import sys
print (sys.path)
wnd = tkinter.Tk()
wnd.title("Sinewave's window")
wnd.geometry("250x100+10+30")
#this one works in both XP and Windows7
wnd.wm_iconbitmap('C:Python34iconscolours.ico')
#this one works in XP but not in windows 7
#wnd.wm_iconbitmap('./icons/colours.ico') #implied path
wnd.mainloop()

shell窗口显示路径如下:

['C:/Python34/py scripts', 'C:\Python34\py scripts', 'C:\Python34\Lib\idlelib', 'C:\Windows\system32\python34.zip', 'C:\Python34\DLLs', 'C:\Python34\lib', 'C:\Python34', 'C:\Python34\lib\site-packages']

当我在Win7中尝试"隐含"路径时,错误是:

_tkinter.TclError: bitmap "./icons/colours.ico" not defined

我尝试了很多变化,但不能得到"隐含"路径在Win7中工作。

是我错过了什么,还是它不像XP那样工作?

(当然,要尝试这个代码片段,您必须创建文件夹"icons"并定义一个适当的图标)。

对于加载文件,相对路径不是相对于sys.path的,它应该相对于您当前的工作目录。

sys.path在python导入模块时使用,它不用于加载文件或tkinter。

对于文件打开和所有,只考虑当前工作目录(除非您给出了完整的绝对路径)。

所以这个问题一定是在Windows 7中发生的,因为可能没有一个icons/colours.ico文件相对于你运行脚本的目录。

最新更新