Python 2/3导入修改问题

时间:2015-11-16 15:40:46

标签: python python-2.7 python-3.x python-import importerror

我有一个用Python 2编写的软件包,我正在尝试使用Python 3进行改造。至少可以说是痛苦的。我在使用 future absolute_import部分代码时遇到了问题。

这适用于Python 2,但不适用于Python 3,所以我希望有人可以指出我的问题。

包结构是:

fusion
  -> __init__.py
  agol
    -> featureservice.py
    -> layer.py

融合初始化定义为:

from __future__ import absolute_import
from . import agol

agol子包定义为:

from __future__ import absolute_import
from . import featureservice
from . import layer

featureservice.py有此导入,问题是:     来自。导入图层 layer.py有类似的导入:     来自。 import featureservice

他们每个人都可以相互引用,其中图层可以是要素服务的子级。但是我得到了这个导入问题,将这个模块导入每个py文件的正确方法是什么?

谢谢

1 个答案:

答案 0 :(得分:2)

循环相对导入在Python 3中不起作用。

循环导入被认为是一种不好的做法,因为您将两个模块紧密耦合在一起。您可能需要考虑为何需要将layer导入layerfeatureservice导入idBloque

也许每个中都有一些功能应该在另一个模块中,这两个模块都依赖于它们?或者也许不是进一步拆分这些模块,你应该将它们合并在一起吗?

相关阅读: