1

xlrd の使用に問題があります。Fedora17を使用しています。

走った

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内のモジュールがをしようとしていたため、これにより問題が発生しましたが、組み込みバージョンの代わりに、ローカル名のをインポートしていたため、エラーが発生しました。xlrdimport copycopy

于 2013-01-27T07:44:11.923 に答える