我在使用模块中定义的类时遇到问题。我看过this stackoverlfow post,答案似乎是“你不需要导入”,这绝对不是我正在经历的行为。我使用的是python3.3。以下是我的目录结构:
root/
__init__.py
mlp/
__init__.py
mlp.py
layers/
__init__.py
hidden_layer.py
dropout_layer.py
我的问题是:dropout_layer.py
中定义的类扩展了hidden_layer.py
中的类,但是当我尝试导入隐藏层时,根据执行代码的目录,有时会出现错误。例如,from layers.hidden_layer import HiddenLayer
然后我运行我的代码,如果我从root/mlp
执行它。但是,如果从root
执行代码,则此导入不起作用。这对我来说是奇怪的行为。我怎样才能让它正常工作?你知道吗
我唯一的非空__init__.py
文件位于root/mlp/layers/
:
# root/mlp/layers/__init__.py
__all__ = ['hidden_layer', 'dropout_layer']
在Python3中,可以为相对于当前模块位置的导入预先设置
.
:相关问题 更多 >
编程相关推荐