Python暗示路径适用于XP但不适用于Windows 7

时间:2015-08-13 05:15:32

标签: python windows relative-path

我正在学习使用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:\Python34\icons\colours.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”并定义合适的图标)。

1 个答案:

答案 0 :(得分:1)

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

python导入模块时使用

sys.path,它不用于加载文件或用于tkinter。

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

因此,必须在Windows 7中出现此问题,因为可能没有相对于运行脚本的目录的icons/colours.ico文件。它可能出现在Windows XP中。