【问题标题】:Python 2/3 retofit issue with imports导入的 Python 2/3 改装问题
【发布时间】:2015-11-16 15:40:46
【问题描述】:

我有一个用 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 python-2.7 python-3.x python-import importerror


【解决方案1】:

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

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

也许每个模块中都有一些函数应该在另一个模块中,它们都依赖于它们?或者也许您应该将它们合并在一起,而不是进一步拆分这些模块?

相关阅读:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-04
    • 2021-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多