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
.
也许每个函数中都有一些函数应该在另一个模块中,并且两者都依赖?或者,与其进一步拆分这些模块,不如将它们合并在一起?
相关阅读:
- Circular imports in Python 2 and 3
- Relative import problems in Python 3
我有一个用 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
.
也许每个函数中都有一些函数应该在另一个模块中,并且两者都依赖?或者,与其进一步拆分这些模块,不如将它们合并在一起?
相关阅读:
- Circular imports in Python 2 and 3
- Relative import problems in Python 3