我试图确定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缓存或类似的东西吗?
答案 0 :(得分:0)
我从未找到引起此问题的原因或解决方法,但是我将模块更改为使用zip_safe=false
,这阻止了该问题再次发生。就我而言,这已经足够了。