导入python 3的问题

时间:2016-06-24 15:20:19

标签: python python-3.x import python-import

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

根文件夹有一个名为s的子文件夹。从根文件夹,我运行的脚本a.py包含行from s import *

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

当我从根文件夹运行脚本a.py时,我得到ImportError说“没有名为c的模块”。

在Python 2.7中运行没有问题。有人可以建议可能是什么问题以及如何在Python 3.5中以不同方式做到这一点?

1 个答案:

答案 0 :(得分:3)

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

from .s import *

这适用于Python 2和Python 3.这也使您更清楚地想要从相对包导入,而不是从已安装的包导入。