zipimport.ZipImportError:由zip缓存bug引起的错误的本地文件头?

时间:2016-10-13 16:50:24

标签: python python-2.7 setuptools

我试图确定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)上,只有其中一个   正在被清除。 Dunno,如果是这样的话,但可能是   要研究的东西。您可以随时粘贴调试打印   uncache_zipdir函数,看看是否存在任何相关性   在它做什么以及何时收到错误之间。

我不清楚链接错误的解决方法。

我认为此时解决问题的唯一方法是将我的自定义模块标记为zip_safe=false。除非有某种方法可以禁用zip缓存或类似的东西吗?

1 个答案:

答案 0 :(得分:0)

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