2017-02-11 3 views
2

私はpython 2.7でopenpyxlを使っていくつかのブックを操作しています。私はそれらにアクセスしようとするときに見つけられていないことを除いて、クラスワークシートのための自分のメソッドを実装しました。私はWindows上にあり、次のコードをsite-packages/openpyxl/worksheet/worksheet.pyに追加しました。ソースコードhere。私は、ブックを開いて試してみて、クラスのワークシートの範囲の下で、それはそれが定義されていていても「いいえ属性」のエラーが発生します(正しく?)私の関数を呼び出すPython。既存のサイトパッケージにカスタムメソッドを追加する

class Worksheet(_WorkbookChild): 
""" 
Library defined methods here. 
""" 

    #My Method. 
    def hello_world(self): 
     print "Hello from worksheet." 

import openpyxl 

wb = openpyxl.load_workbook('helloworld.xlsx') 
sheet = wb.get_active_sheet() 

sheet.hello_world() 
AttributeError: 'Worksheet' object has no attribute 'hello_world' 

既存のライブラリを更新するために何か別の処理を行う必要はありますか? .pycを削除して再コンパイルしても、同じエラーが発生しています。

答えて

0

この問題に遭遇する他の人のために。ライブラリは、通常のタブを使用している間に各インデントに4つのスペースを使用していました。インデントの変化は、たとえそのように見えてもメソッドが定義されないようにしました。

+0

Python 3を使用する場合、タブとスペースを混ぜると例外が発生します。推奨事項は**常に**スペースを使用し、それに応じてエディタを構成することです。 –

関連する問題