我有一个用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文件的正确方法是什么?
谢谢
答案 0 :(得分:2)
循环相对导入在Python 3中不起作用。
循环导入被认为是一种不好的做法,因为您将两个模块紧密耦合在一起。您可能需要考虑为何需要将layer
导入layer
和featureservice
导入idBloque
。
也许每个中都有一些功能应该在另一个模块中,这两个模块都依赖于它们?或者也许不是进一步拆分这些模块,你应该将它们合并在一起吗?
相关阅读: