[英]How does "as" clause affect "import" in Python?
我认为“as”子句只是作为导入模块的别名。 但是,在以下代码中,“import”失败并带有“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”的成败?
from tensorflow.python import eager
导入名称“ tensorflow.python ”,然后获取其属性eager
,而
import tensorflow.python.eager as eager
导入名称“ tensorflow ”,并在其中尝试找到属性python
,并从中找到属性eager
,然后它应该将其作为eager
放入您的全局命名空间中。 这是一个巨大的差异,因为在 tensorflow 的__init__.py
没有对象python
,它代表了导入时的 tensorflow 包,它不知道可能存在的任何子包。 因此错误
AttributeError: 模块“tensorflow”没有属性“python”
导入时不应该有“.eager”以将“eager”作为某种东西导入。
试试这个,它会正常工作:
from tensorflow.python import eager as eager
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.