【发布时间】:2016-10-13 16:50:23
【问题描述】:
我正在尝试确定 python 使用的 zip 缓存机制中是否仍然存在错误。原因是因为我正在运行的 python 代码(似乎)会随机失败并出现zipimport.ZipImportError: bad local file header。
它可能运行良好,然后突然ZipImportError 当它尝试导入我已安装的自定义模块时(当它在执行的早期已经运行相同的代码时可能会发生这种情况)。我没有在应用程序运行时更改自定义模块的 egg 文件,所以我有点难过。
在谷歌上搜索此错误的帮助出现了an old mailing list thread,其中指出
这可能是由于:
http://bugs.python.org/issue856103
具体来说,zipimport 的缓存不会注意到它不是 不再使用同一个 zipfile。 easy_install 应该是 里面有一些代码来清除 zipimport 缓存,但是有 有可能它可能有两个版本的路径 在不区分大小写的文件系统(例如 Windows)上,并且只有其中一个 正在清除。不知道是不是这样,但它可能是 需要调查的东西。您总是可以在其中粘贴调试打印 uncache_zipdir 函数,看看是否有任何相关性 在它正在做什么和你收到错误之间。
我不清楚链接错误的解决方案。
我认为此时解决我的问题的唯一方法是将我的自定义模块标记为zip_safe=false。除非有某种方法可以禁用 zip 缓存或类似的东西?
【问题讨论】:
标签: python python-2.7 setuptools