繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM