Python linux计算机上的openpyxl错误

Python linux计算机上的openpyxl错误,python,openpyxl,Python,Openpyxl,我之前一直在运行代码,但openpyxl突然出现了这个错误: >>>from openpyxl import load_workbook >>>wb = load_workbook("wb.xlsx") test!$A$2 True test!$A$3 True >>> ws = wb['sheet'] Traceback (most recent call last): File "<stdin>", line 1, in &

我之前一直在运行代码,但openpyxl突然出现了这个错误:

>>>from openpyxl import load_workbook
>>>wb = load_workbook("wb.xlsx")
test!$A$2 True
test!$A$3 True
>>> ws = wb['sheet']
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
TypeError: 'Workbook' object has no attribute '__getitem__'
来自openpyxl导入加载\u工作簿的
>>
>>>wb=加载工作簿(“wb.xlsx”)
测试$A 2美元真的吗
测试$A 3美元真的吗
>>>ws=wb[“工作表”]
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“工作簿”对象没有属性“\uuuu getitem\uuuu”
以我的xlsx文件中的一张图纸的名称进行测试


我在linux和mac上运行了相同的代码。以前,代码在这两种环境中都可以正常工作,但现在在linux环境中代码正在崩溃,不确定原因。

我也有同样的问题

非常奇怪的是,当我使用ipython时,它消失了,然后又回来了

下面是代码(注意“example.xlsx”可以是任何填写了A1的电子表格。)

结果是我们在这一行失败了:

sheet_ranges = wb[ws]
结果是:

TypeError:“工作簿”对象没有属性“getitem

我怀疑这有一段时间是有效的,因为我添加了一些魔线

以下是一条线索:

目录(openpyxl.文档) [“add”、“class”、“contains”、“delattr”、“doc”、“eq”、“format”、“getattribute”、“getitem”、getnewargs、“getslice”、,“hash”、“init”、“le”、“len”、“lt”、“mod”、“mul”、“ne”、“new”、“reduce”、“reduce-ex”、“reprrmsetattr”、“sizeof”、“str”、“子类挂钩”、“\u格式化程序\u字段\u名称\u拆分”、“\u格式化程序\u解析器”、“大写”、“居中”、“计数”、“解码”、“编码”、“结束开关”、“展开标签”、“查找”、“格式”、“索引”、“isalnum”、“isalpha”、“isdigit”、“islower”、“isspace”、“istitle”、“isupper”、“joi”n、ljust、lower、lstrip、partition、replace、rfind、rindex、rjust、rpartition、rsplit、rstrip、split、splitlines、startswith、strip、swapcase、title、translate、upper、zfill]

请注意,getitem

多田

答案是我通过debian存储库加载的openpyxl版本是1.5版。您可以使用以下代码发现这一可怕的事实:

''' checks version of openpyxl '''
if str(openpyxl.__version__) <> "2.3.2":
#T if str(openpyxl.__version__) <> "1.5":
    print "Trouble Ahead...this machine uses openpyx version "+str(openpyxl.__version__)
else:
    print "Good to Go! This this machine uses openpyx openpyx version "+str(openpyxl.__version__)
“”“检查openpyxl的版本”
如果str(openpyxl.\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
#T如果str(openpyxl.\uuuuuuuuuuuu版本)“1.5”:
打印“故障在先…此机器使用openpyx版本”+str(openpyxl.\uuuuuuu版本)
其他:
打印“很好!这台机器使用openpyx openpyx版本”+str(openpyxl.\uuuuuuuuuuu版本)
当前版本为2.3.2。旧版本会让你哭泣


Flint

您在linux上使用哪个版本的openpyxl?
''' checks version of openpyxl '''
if str(openpyxl.__version__) <> "2.3.2":
#T if str(openpyxl.__version__) <> "1.5":
    print "Trouble Ahead...this machine uses openpyx version "+str(openpyxl.__version__)
else:
    print "Good to Go! This this machine uses openpyx openpyx version "+str(openpyxl.__version__)