Python 2/3 进口改造问题

Python 2/3 retofit issue with imports

我有一个用 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 有一个类似的导入: 从 。导入特征服务

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

谢谢

循环相对导入在 Python 3.

中不起作用

循环导入被认为是一种不好的做法,因为您已经将两个模块彼此紧密耦合。您可能需要考虑为什么需要将 featureservice 导入 layer 并将 layer 导入 featureservice.

也许每个函数中都有一些函数应该在另一个模块中,并且两者都依赖?或者,与其进一步拆分这些模块,不如将它们合并在一起?

相关阅读: