gpt4 book ai didi

python - 模块未找到错误 : No module named 'tensorflow.contrib' ; 'tensorflow' is not a package

转载 作者:行者123 更新时间:2023-11-28 18:10:24 24 4
gpt4 key购买 nike

我正在尝试开始使用 Tensorflow,但遇到错误。我在 Google 和这个网站上进行了搜索,但没有找到答案。

所以让我解释一下。我目前在我的电脑上使用 anaconda3。我使用“Anaconda Prompt”通过 pip install -q --upgrade tensorflow 安装 tensorflow。它有效但是当我运行这段代码时(来自 here ):

from __future__ import absolute_import, division, print_function

import os
import matplotlib.pyplot as plt

import tensorflow as tf
import tensorflow.contrib.eager as tfe

tf.enable_eager_execution()

print("TensorFlow version: {}".format(tf.VERSION))
print("Eager execution : {}".format(tf.executing_eagerly()))

我收到以下错误:

Traceback (most recent call last):
File "<ipython-input-11-9a561e7b074b>", line 1, in <module>
runfile('C:/Users/emile/Desktop/tensorflow.py', wdir='C:/Users/emile/Desktop')

File "C:\Users\emile\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 705, in runfile
execfile(filename, namespace)

File "C:\Users\emile\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)

File "C:/Users/emile/Desktop/tensorflow.py", line 6, in <module>
import tensorflow as tf

File "C:\Users\emile\Desktop\tensorflow.py", line 7, in <module>
import tensorflow.contrib.eager as tfe

ModuleNotFoundError: No module named 'tensorflow.contrib'; 'tensorflow' is not a package

也许问题是由 Anaconda 引起的?

非常感谢。

最佳答案

一个有趣的发现,我希望这对在 Anaconda 或类似集成环境下开发的其他人有所帮助,在这些环境中您的程序不是直接从命令行运行的,例如像“python myprogram.py”。

问题可能是由于程序本身的名称为tensorflow.py。它在不是作为“主”模块启动的环境中运行,而是由另一个 Python 程序(在本例中为 anaconda)加载。

当一个 python 程序以这种方式加载时,解释器将它作为一个模块读取并将它放入它的模块列表中(与文件同名),所以现在你有 sys.modules["tensorflow"]指向已加载的用户程序(而不是已安装的 tensorflow 模块)。当遇到 'import tensorflow as tf' 行时,Python 会发现“tensorflow”已经被导入并简单地执行 tf=sys.modules["tensorflow"],这是对你自己的引用 tensorflow.py(已经是个问题,但您还没有tf.enable_eager_execution() - 如果您这样做,它会失败,因为您的 tensorflow.py 没有这样的功能)。

现在,有趣的部分:

import tensorflow.contrib.eager as tfe

Python 已经导入了“tensorflow”(您的模块!),因此它希望在与加载的 tensorflow.py 相同的目录中找到任何子模块。特别是,它希望该目录是一个 Python 包(其中包含 __init__.py),但显然不是,因此出现“...不是包”错误消息。

关于python - 模块未找到错误 : No module named 'tensorflow.contrib' ; 'tensorflow' is not a package,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51069945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com