Python:'NoneType'对象没有属性'decompressobj'
我在Ubuntu上使用Python 2.7.11。Python:'NoneType'对象没有属性'decompressobj'
我试图用xlrd
包在Python中打开一个Excel文件(.xlsx)。不过,我得到以下错误,当我尝试使用open_workbook()
功能从包装打开我的Excel文件:
Traceback (most recent call last):
File "TileInserter.py", line 15, in <module>
book = open_workbook(sheetPath, on_demand=True)
File "/usr/local/lib/python2.7/site-packages/xlrd/__init__.py", line 422, in open_workbook
ragged_rows=ragged_rows,
File "/usr/local/lib/python2.7/site-packages/xlrd/xlsx.py", line 761, in open_workbook_2007_xml
zflo = zf.open(component_names['xl/_rels/workbook.xml.rels'])
File "/usr/local/lib/python2.7/zipfile.py", line 1010, in open
close_fileobj=should_close)
File "/usr/local/lib/python2.7/zipfile.py", line 526, in __init__
self._decompressor = zlib.decompressobj(-15)
AttributeError: 'NoneType' object has no attribute 'decompressobj'
我试图谷歌这个错误的原因,并发现,如果zlib
库这可能发生未安装。但是当我使用PHP的phpinfo()
函数检查时,它显示安装了zlib
。这也是最新版本(版本1.2.8)。
所以我现在有点卡住了。有谁知道如何解决这个问题?
编辑:我在TileInserter.py
实际的代码是这样(TileInserter.py
和TileList.xlsx
在同一目录为):
from xlrd import open_workbook
sheetPath = "TileList.xlsx"
#some more variables
#Open Excel file
book = open_workbook(sheetPath, on_demand=True)
for name in book.sheet_names():
if name.endswith('1'):
sheet = book.sheet_by_name(name)
我在http://www.python-excel.org/看到,有被推荐用于工作库openpyxl
.xlsx文件。这可能是你需要的,而不是xlrd
。
嗯,我试图打开一个'.xls'文件而不是'.xlsx',它确实没有任何问题地打开。所以谢谢指出! 但是根据这个线程[这里](http://stackoverflow.com/questions/4371163/reading-xlsx-files-using-python),'.xlsx'支持在6年前添加到'xlrd'中,而我现在正在使用最新版本(截至目前的0.9.4版本)。 – masquerade817
非常感谢您指出了这一点。我已经解决了我的问题,但是我会等待答案,实际回答问题以提供复选标记。 – masquerade817
请发表您的实际代码 –