Dav*_*avy 11 python django django-import-export python-3.6 tablib
从python 3.5迁移到3.6,我的单元测试显示django-import-export和tablib存在问题:
TypeError:cell()缺少1个必需的位置参数:'column'
File "<path>/lib/python3.6/site-packages/tablib/formats/_xlsx.py", line 122, in dset_sheet
cell = ws.cell('%s%s' % (col_idx, row_number))
TypeError: cell() missing 1 required positional argument: 'column'
Run Code Online (Sandbox Code Playgroud)
tablib中的行:
cell = ws.cell('%s%s' % (col_idx, row_number))
Run Code Online (Sandbox Code Playgroud)
事实上,该专栏没有任何论据
我的观点代码:
my_resource = MyModelResource(queryset=my_queryset)
dataset = my_resource.export()
response = HttpResponse(dataset.xlsx, content_type='application/vnd.ms-excel')
Run Code Online (Sandbox Code Playgroud)
这在python3.5中工作正常但在3.6下失败
requirements.txt:
...
tablib==0.12.1
django-import-export==0.7.0
Django==1.11.7
...
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 33
这与Python 3.5或3.6无关.openpyxl
与3.5安装程序相比,3.6安装时安装了较新版本.
你已经安装了3.6版本已经移除了从过时的坐标参数worksheet.cell()
方法和取得的row
和column
强制性的论据.这是版本2.5.0b1的一部分,发布于2018-01-19(两周前):
主要变化
worksheet.cell()
不再接受坐标参数.语法现在ws.cell(row, column, value=None)
该tablib
库还没有调整到这一变化.代码应该直接传递列号和行号:
cell = ws.cell(row=row_number, column=col_idx)
Run Code Online (Sandbox Code Playgroud)
使用关键字参数将确保兼容性一直回到1.1.0(添加了对2010 column
和row
2010年发布的参数的支持).
在此期间,您可以将openpyxl
安装降级到版本2.4.9,即没有这些更改的最后一个版本.
另请参阅项目存储库中的问题#324tablib
.
归档时间: |
|
查看次数: |
4767 次 |
最近记录: |