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 回答