相对导入兼容性问题 py2 和 py3

Posted

技术标签:

【中文标题】相对导入兼容性问题 py2 和 py3【英文标题】:Relative import compatibility issue py2 and py3 【发布时间】:2019-08-14 19:13:15 【问题描述】:

我有以下包装限制:

foo:
   __init__.py
   soft:
       __init__.py
       access.py

init.py 有以下行

from . import access

当我运行包 foo.soft 时,它给出了一个错误:

ImportError: cannot import name access

但如果我删除它会起作用。并使第二个 init 如下:

import access 

但是 py3 要求相对导入必须有“.”。如何解决这个问题 py2 和 py3 兼容性问题?

【问题讨论】:

【参考方案1】:

已通过添加解决:

from __future__ import absolute_import

【讨论】:

以上是关于相对导入兼容性问题 py2 和 py3的主要内容,如果未能解决你的问题,请参考以下文章

py2的地位被严重低估py2与py3的区别,初学者应该如何选择?

如何优雅地将dat,txt 或者excel 文件导入python

py3与py2的问题以及encode问题

python2和python3的区别

py3相对import和mock的问题

使用 py2 解释器时的 PyCharm py3 语法问题