属性错误:部分初始化的模块"tensorflow"没有属性"config"(很可能是由于循环导入)

uqdfh47h  于 2023-01-09  发布在  其他
关注(0)|答案(3)|浏览(319)

我不断收到此错误:

Traceback (most recent call last)
   File "tensorflow.py", line 1, in <module>
import tensorflow as tf
   File "C:\Users\Anush\Desktop\tensorflow.py", line 2, in <module>
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))
  AttributeError: partially initialized module 'tensorflow' has no attribute 'config' (most likely due to a circular import)

下面是我的代码:

import tensorflow as tf
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))

以下是我的Tensorflow版本:Tensor板-2.3.0tensorflow -2.3.1tensorflow 估计器-2.3.0tensorflow -gpu-2.3.1
我使用的是Python 3.8.0

mwkjh3gx

mwkjh3gx1#

当python执行一个脚本时,它会把脚本的目录包含在python路径中,这使得程序员很容易为脚本提供他们自己的模块,而无需显式安装,而且,python不会把顶层脚本当作模块(或者更准确地说,它命名为__main__)。
在本例中,您将脚本命名为“tensorflow.py“。Python执行脚本,当它看到import tensorflow时,它导入您的模块,而不是真实的的tensorflow包。(原来的是__main__),它再次执行文件,第二次看到那个import tensorflow,但是再一次,它仍然是你相同的tensorflow.py。这可能会永远持续下去,但是python检测到循环导入并发出您看到的错误。
python这样做太糟糕了,它使模块和包的部署变得更容易,但它有点脆弱,你必须确保你的.py文件名不会与python安装中出现的任何东西冲突。
解决办法是重命名C:\Users\Anush\Desktop\tensorflow.py,但不要和你安装的任何python包同名。

fnatzsnv

fnatzsnv2#

在我的例子中,我只是将当前的脚本名从code.py重命名为testing.py,然后它就可以完美地工作了。
疑似相同的code.py文件名位于导入tensorflow库中,导致此循环导入错误。

eqqqjvef

eqqqjvef3#

也许是水蟒的提示

conda install tensorflow

相关问题