2

これは私のファイル構造です:

annotations
    Helper.py
    annotations.py
test
    HelloWorld.py

これはHelloWorld.py、単純なHelloWorldクラスです。

from annotations.annotations import annie

class HelloWorld:
    @annie.mydecorate
    def something():
        echo 'Hello World'

そして、その中でannotations.py、私はいくつかの単純なデコレータを宣言しています:

from annotations.Helper import Helper

class annie:
    @staticmethod
    def mydecorate(func):
        Helper.prepare()
        print func.__name__

ここで、というエラーが発生しますNo such module: Helper。これは、モジュールがロードされているときに発生していると思いHelloWorldます。アノテーションモジュールがロードされていますが、モジュールがロードされているときに関数が呼び出されており、モジュールはロードされていHelperません。自分がどれだけ正しいかはわかりませんが、ここで解決策を探しています。

問題は別のものですか?デコレータを宣言するファイルで行っているようにモジュールをインポートできますか?どんな助けでも大歓迎です。

よろしく、ローハン

4

2 に答える 2

2

annotations.py、試してください:

import Helper

または(相対インポート、Python 2.5以降)

from . import Helper
于 2012-06-04T20:06:23.683 に答える
0

これを試して:

annotations
    Helper.py
    annotations.py
    __init__.py
HelloWorld.py
于 2012-06-04T19:58:39.227 に答える