“ as”子句如何影响Python中的“ import”?

时间:2019-11-28 09:42:50

标签: python

我认为“ as”子句只是使导入模块成为别名。 但是,在以下代码中,“导入”失败,并带有“ as”子句。

import tensorflow.python.eager as eager

此语句引发以下错误。

Traceback (most recent call last):
  File "/home/snippet/prof/importer.py", line 2, in <module>
    import tensorflow.python.eager as eager
AttributeError: module 'tensorflow' has no attribute 'python'

当我删除“ as”子句时,“导入”成功。 “ as”子句如何影响“ import”的成功和失败?

2 个答案:

答案 0 :(得分:1)

from tensorflow.python import eager

导入名称“ tensorflow.python ”,然后获取其属性eager,而

import tensorflow.python.eager as eager

导入名称“ tensorflow ”,并在其中尝试找到属性python,并从中找到属性eager,然后将其放入全局命名空间为eager。这是一个巨大的差异,因为tensorflow的python中没有对象__init__.py,这是导入时代表tensorflow包的对象,并且不知道可能存在的任何子包。因此错误

  

AttributeError:模块'tensorflow'没有属性'python'

答案 1 :(得分:0)

在导入时不要将“ .eager”导入为“ eager”。

尝试一下,它将正常工作:

from tensorflow.python import eager as eager