如何在包中使用__init__.py文件?

时间:2017-07-10 12:45:29

标签: python-3.x

我有一个包裹如下:

mypackage/

     __init__.py
     mod1.py
     mod2.py

mod1.py内,我有一个名为calculate()的定义。现在我从mod1 import calculate

__init__.py中编写此代码

但每次我编写此代码时都会收到错误消息

  

未解决的导入计算。

我无法理解为什么会收到此错误。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您应该从包根文件夹导入模块,如下所示:

from mypackage.mod1 import calculate

Python使用包名称(例如您的mypackage)作为命名空间,在其中,它将查找模块mod1。由于你没有告诉python namespace它不知道在哪里寻找你的模块,因此产生了错误:

unresolved import calculate

python文档详细解释了here。您还可以查看this SO主题以获取有关包导入如何工作的详细说明。