1

我在使用 xlrd 时遇到问题。我正在使用 Fedora 17。

我跑了

python run.py

我得到了错误

ImportError: cannot import name open_workbook

我已经在谷歌上搜索了很长一段时间,但还没有找到解决方案。它变得有点令人沮丧。

根据我在 Google 上的发现,我认为这与 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]
4

1 回答 1

2

copy根据我们在上面评论中的讨论,最终原因是目录本身中有一个名为的文件。这导致了一个问题,因为包中的formula模块xlrd试图import copy导入,而不是内置版本,而是导入本地命名的copy,导致错误。

于 2013-01-27T07:44:11.923 回答