ImportError: 无法导入名称 open_workbook
我在使用xlrd的时候遇到了一些问题。我用的是Fedora 17。
我运行了
python run.py
然后出现了这个错误
ImportError: cannot import name open_workbook
我在网上搜索了很久,但一直找不到解决办法,感觉有点沮丧。
根据我在网上找到的信息,我觉得可能是Python在找xlrd的时候,遇到了一个冲突的文件或文件夹。如果真是这样,我猜这和我安装xlrd的方式有关。首先,我记得我下载了一个rpm文件(我找不到当时下载的具体网址)。下载后,我的文件运行得很好,但后来我觉得需要从更可信的来源安装xlrd,于是我去了http://www.python-excel.org/,通过那里的链接下载了它。安装没问题,但从那时起我就开始收到导入错误。
如果可以的话,我想完全卸载xlrd,然后重新开始。不知道这样是否有帮助,但如果有人能给我指个方向,那就太好了。
这是我的代码:
from xlrd import open_workbook
wb = open_work('week 1/AFROTC SP13 Eagles Sqaudron Weekly Attendance.xls')
LLab = {}
TuesPT = {}
ThursFriPT = {}
for s in wb.sheets():
if s.name == "LLab":
for row in range(s.nrows):
values = []
for col in range(s.ncols):
values.append(s.cell(row,col).value)
if values[0] != "end":
if values[1] == "0" or values[1] == "1":
LLab[values[0]]=int(values[1])
elif s.name == "TuesPT":
for row in range(s.nrows):
values = []
for col in range(s.ncols):
values.append(s.cell(row,col).value)
if values[0] != "end":
if values[1] == "0" or values[1] == "1":
TuesPT[values[0]]=int(values[1])
elif s.name == "ThursFriPT":
for row in range(s.nrows):
values = []
for col in range(s.ncols):
values.append(s.cell(row,col).value)
if values[0] != "end":
if values[1] == "0" or values[1] == "1":
ThursFriPT[values[0]]=int(values[1])
print "LLab"
for key in LLab:
print key,
print LLab[key]
print
print
print "TuesPT"
for key in TuesPT:
print key,
print TuesPT[key]
print
print
print "ThursFriPT"
for key in ThursFriPT:
print key,
print ThursFriPT[key]
1 个回答
2
根据我们上面评论中的讨论,最终的原因是目录里有一个叫做 copy
的文件。这导致了问题,因为 xlrd
这个包里的 formula
模块试图去 import copy
,但它不是在导入系统自带的 copy
,而是导入了我们自己目录里那个叫 copy
的文件,这就引发了错误。