缺失 'C:\Windows\system32\python27.zip' 文件
我最近把我的Python 2.7.1升级到了2.7.2,使用的是.msi
安装程序,整个过程看起来还不错。不过,升级后我查看了一下sys.path
的默认值,发现里面有一个条目是'C:\Windows\system32\python27.zip'。我好奇里面到底有什么,就决定用一个压缩工具打开看看,但很快我发现这个文件并不存在(虽然有一个python27.dll
)。
现在我有点担心是不是出了什么问题。我常用的几个Python程序似乎都能正常运行,所以我不确定安装是否搞砸了(如果搞砸了,我也不知道该怎么修复)。
更新
我知道PEP273,也读过,所以了解.zip文件模块。这不是我想问的。我想知道的是,虽然我的sys.path
里提到了python27.zip
,但我的系统上并没有安装这个文件,这算不算问题?我从来没有遇到过导入标准Python库的问题,这正是我觉得没有这个文件会影响的地方。
1 个回答
就像现在的sys.path里有默认的目录名称一样,系统也会添加一个默认的zip压缩包名称。否则,就没有办法从压缩包中导入所有的Python库文件。
...
问题在于这个名称应该是什么。这个名称需要和Python的版本相关联,这样Python程序才能正确找到对应的库,即使在同一台机器上有多个Python版本。
我们在sys.path中添加一个名称。在Unix系统中,目录是sys.prefix + "/lib",文件名是"python%s%s.zip" % (sys.version[0], sys.version[2])。所以对于Python 2.2和前缀/usr/local来说,路径/usr/local/lib/python2.2/已经在sys.path中了,而/usr/local/lib/python22.zip会被添加进去。在Windows系统中,文件是python22.dll的完整路径,只不过“dll”会被“zip”替换。这个zip压缩包的名称总是作为sys.path中的第二个项目插入。第一个是main.py的目录(感谢Tim)。