此函数基于 Python 示例代码 @http://docs.python.org/library/gzip.html。它在 Ubuntu 10.04 上可靠运行,默认使用 Python 2.6x。然而,在 Ubuntu 11.04 上,代码在 @writelines() 时失败。
在一台 11.04 机器上,失败消息报告“‘module’ 对象没有属性‘BufferedIOBase’”。另一台 11.04 机器报告了不同的消息“没有名为 numpy 的模块”。
是否有人知道 11.04 上缺少任何 Python 依赖项或其他问题会导致这种情况?
def _compress(inp,out):
import gzip
f_out = gzip.open(out,'wb')
f_in = open(inp,'rb')
f_out.writelines(f_in)
f_out.close()
f_in.close()
os.unlink(inp)
答案1
塔霍尔在评论中解决了这个问题:
抱歉,xubuntix,我把问题追溯到 sys.path() 中存在非标准 io.py 模块。Python 的 gzip 模块在 2.6x(Ubuntu 10.04)上忽略了它,但在 2.7x(Ubuntu 11.04+)上尝试加载它。删除/重命名 io.sys 模块解决了这个问题。谢谢