我继续收到此错误:
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版本: tensorboard-2.3.0 tensorflow-2.3.1 tensorflow-estimator-2.3.0 tensorflow-gpu-2.3.1
我使用的是Python 3.8.0
答案 0 :(得分:1)
就我而言,我只是将当前脚本名称从 code.py 重命名为 testing.py。然后它完美地工作。
怀疑相同的 code.py 文件名在导入 tensorflow 库中,导致此循环导入错误。
答案 1 :(得分:0)
当python执行脚本时,它将在python路径中包括脚本的目录。这使程序员无需显式安装即可轻松为脚本提供自己的模块。另外,python不会将该顶级脚本视为模块(或更准确地说,将其命名为__main__
)。
在您的情况下,您将脚本命名为“ tensorflow.py”。 Python执行脚本,并且在看到import tensorflow
时会导入您的模块,而不是真正的tensorflow
包。由于它还没有名为tensorflow
的模块(原始模块为__main__
),因此它将再次执行该文件并再次看到import tensorflow
,但仍然是一样的tensorflow.py
。那可能永远持续下去,但是python检测到循环导入并发出您看到的错误。
python这样做很糟糕。它使部署模块和程序包更加容易,但是它很脆弱。您必须确保.py文件名不会与python安装中可能显示的任何内容冲突。
解决方案是重命名C:\Users\Anush\Desktop\tensorflow.py
。而且只是不要将其命名为您可能安装的任何python软件包。