2

我最近使用安装程序将我的 Python 2.7.1 安装升级到了 2.7.2 .msi,这个过程似乎很顺利。但是后来我碰巧在查看默认值的用途sys.path,并注意到“C:\Windows\system32\python27.zip”的条目。想知道里面到底有什么,我决定尝试用一个 Zip 实用程序打开它来检查它的内容——但是我很快发现该文件不存在(尽管有一个 .zip 文件python27.dll)。

无论如何,我现在想知道是否有问题。我经常使用的几个现有 Python 程序似乎都可以正常工作,所以我不确定安装是否混乱(或者如何修复它,如果是的话)。

更新

我知道并已阅读 PEP273,因此了解 .zip 文件模块。这不是我要问的。我想知道的是,python27.zip即使在我sys.path的问题中提到了我的系统上也没有安装它?我从来没有遇到过导入标准 Python 库的问题,这是我希望没有一个会影响的。

4

1 回答 1

5

来自 PEP 273 - 从 Zip 档案中导入模块

正如 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)。

于 2011-08-04T21:55:53.860 回答