关于from . import 的一个问题

Posted clownly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于from . import 的一个问题相关的知识,希望对你有一定的参考价值。

绝对导入: 从sys.path模块搜索路径列表中开始找(第一个元素是当前执行程序所在目录)

相对导入:从from import语句所在的文件开始找 .代表当前文件所在目录目录,..代表当前文件所在目录的上一级目录

ps:相对路径导入依赖于__name__变量,根据它的值去寻找平级或者上级目录或文件,

模块被导入后,python解释器会为该模块创建一个名为__name__的变量,并将该模块所在目录的绝对路径存储于此变量中,

而.py文件运行时,python会为该程序创建一个名为__name__的变量,并且赋值为字符串“__main__”,所以在当前执行程序不能使用相对导入,

from . import name 会报错提示 cannot import name ‘name‘

from .. import name 会报错提示 attempted relative import beyond top-level package

 

以上是关于关于from . import 的一个问题的主要内容,如果未能解决你的问题,请参考以下文章

关于 from scipy.misc import imread, imresize, imsave 报错的问题

ImportError: cannot import name ‘xxx‘ from ‘xxx‘关于python导包的问题

关于from . import和import的区别

关于import和from xx import xx

`from ... import`与`import .` [重复]

Python的一个命名空间冲突,关于from-import机制