python 3 的导入问题

Importing issue with python 3

我有一个代码 运行s 在 Python 2.7 但不在 3.5 中,我找不到原因。跟导入有关。

根文件夹有一个名为 s 的子文件夹。在根文件夹中,我正在 运行 宁脚本 a.py 其中包括行 from s import *.

在文件夹 s 中,有一个名为 b.py 的文件,其中包含导入行:from c import c 它试图导入保存在 c.py 中的 class,它也位于子文件夹 s 中。

当我从根文件夹 运行 脚本 a.py 时,我得到 ImportError 说 "No module named c"。

在 Python 2.7 这个 运行 没有问题。有人可以建议可能是什么问题以及如何在 Python 3.5 中以不同的方式完成此操作吗?

包内的隐式导入不适用于 Python 3,因此要使其正常工作,您需要使用显式相对导入:

from .s import *

这应该适用于 Python 2 和 Python 3。这也使您的意图更加明确,您希望从相关包而不是已安装的包中导入。