06月15, 2020

openpyxl的坑

由于 Ubuntu里有三个版本的 python 分别是2.7 3.5 3.7

1)我反复确认了官方文档里写的使用方法没错,可是一直报错!

2)我确认了对象类型是对的,Worksheet,

Openpyxl: 'Worksheet' object has no attribute 'insert_rows'

于是我想到了可能是版本问题,也许这个版本并没有这个attribute. 我想打印看下版本

import openpyxl 
print(openpyxl.__version__)

果然:显示2.3.0, 非常老了,简直是最老的版本。

于是我发现可能是由于python 不同版本的pip pip3造成的 那么我开始卸载

sudo pip uninstall openpyxl
我发现有好几个版本,路径分别装到了 python3.5  python2.7的目录下
疯狂卸载,全都卸载完

我又开始删除python2.7 3.5 只留下3.7就好了

然后我重新安装

sudo pip install openpyxl

安装成功,版本为3.0.3 于是我开心的去测试程序,死活就是报错

ImportError: No module named 'openpyxl'

于是我又添加了临时的export #PATH 无用! 于是我又卸载了pip 更新了pip3 就这样试了很多次。 最后我发现,必须用sudo来卸载,必须不用sudo来安装才行。

pip3 install openpyxl

终于可以了,但是又报了别的错误!

ModuleNotFoundError: No module named 'jdcal'

于是把1.4版本卸载了,安装1.3版本

pip3 install jdcal==1.3

成功! 但是又报新错误!

ModuleNotFoundError: No module named 'et_xmlfile'
于是我卸载了,重装,折腾了几个小时终于可用了,汗。
记录一下,以免以后被坑。
sudo pip3 uninstall et_xmlfile
pip3 install et_xmlfile

本文链接:https://harry.uno/post/openpyxl.html

-- EOF --

Comments