码迷,mamicode.com
首页 > 其他好文 > 详细

关于from . import和import的区别

时间:2017-09-30 17:42:04      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:基于   .com   package   from   pack   理解   使用   error:   mil   

 

技术分享

 

from . import echo # 从当前目录导入echo模块

from .. import formats # 从上级目录导入formats模块

from ..filters import equalizer # 从上级目录的filters目录导入equalizer模块

关键是最后一句话(此处为五毛翻译):

    相对导入是基于当前模块的name属性的。当被执行模块作为python应用的主模块时,因为其name属性为‘__main__‘,所以在调用其他模块时应使用绝对导入。

以下为个人理解:

    例如a.py和b.py在同一目录下

    当a.py作为执行文件时,在a中调用b:import b就可以了,使用from <父目录> import b,文本编辑器会报错,但是执行顺利。使用任何from . import xxx和from .. import xxx均会报错:ModuleNotFoundError: No module named ‘__main__.d‘; ‘__main__‘ is not a package

    当a作为模块被调用时:import b会在sys.path的目录中寻找b模块,from同理。而from . import xxx和from .. import xxx顺利执行。

关于from . import和import的区别

标签:基于   .com   package   from   pack   理解   使用   error:   mil   

原文地址:http://www.cnblogs.com/yx179971/p/7615394.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!