【问题标题】:zipimport.ZipImportError: bad local file header caused by zip caching bug?zipimport.ZipImportError:由 zip 缓存错误导致的错误本地文件头?
【发布时间】: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


    【解决方案1】:

    我从未找到此问题的原因或解决方法,但我将我的模块更改为使用 zip_safe=false 并防止问题再次发生。就我而言,这已经足够了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-30
      • 1970-01-01
      • 2015-01-03
      • 2013-06-22
      • 1970-01-01
      相关资源
      最近更新 更多