【问题标题】:Python not finding Tensorflow module under AnacondaPython在Anaconda下找不到Tensorflow模块
【发布时间】:2018-09-11 01:56:37
【问题描述】:

我是一个新手,试图在 Windows 10 上本地执行 first_steps_with_tensor_flow.ipynb 中的代码。我已经安装了 Anaconda Navigator 1.8.2,创建了一个我已经安装的环境,其中包括 tensorflow 包。然后我从 Anaconda 启动 Visual Studio Code 并运行

import math
from IPython import display
from matplotlib import cm
from matplotlib import gridspec
from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
from sklearn import metrics
import tensorflow as tf
from tensorflow.python.data import Dataset

最后一行在 VS Code 中用红色标记,表示 E0401:Unable to import 'tensorflow.python.data'。运行时,我得到 ModuleNotFoundError: No module named 'tensorflow'。但是,如果我将最后一行更改为print (tf.__version__),我会得到1.2.1 作为输出,那么显然已安装了Tensorflow。奇怪的是 VS Code 抱怨 E1101:Module 'tensorflow' has no __version__ member,但那行有效。

我在这里做错了什么?

【问题讨论】:

  • 这可能是问题,因为您的系统中有不同的 python 解释器
  • 您的代码在我的系统中运行良好。请确保使用 VS 代码启用正确的 python 解释器。

标签: python tensorflow visual-studio-code anaconda


【解决方案1】:

您使用的是 Visual Studio Code (VSC) 还是一般只使用 pylint?我找到了发生这种情况的原因。

对于 VSC,python 扩展,使用 pylint 进行 python 的智能感知。 Pylint 似乎有子模块的错误。 对我来说,错误只显示在 VSC 中,而不是提示中

我通过以下步骤解决了这个问题:

点击“代码”->点击“首选项”->点击“设置”

现在在设置中,顶部有一个搜索栏,搜索:

python.linting.pylintEnable 并将其设置为false

现在有了 linting 的替代方法,我这里以 pep8 为例,因为它是 anaconda 自带的,搜索一下

python.linting.pep8Enabled 并将其设置为true

现在 pylint 不再是默认的 linter,我们现在使用的是 pep8。 只是为了确保,退出 VSC 并重新打开它。应该不会再出现任何错误。

我很确定这是 pylint 的问题,而不是您安装的 TF。默认情况下,VSC 中的 Microsoft python 扩展使用 pylint 作为 linting 工具。通过将其更改为 pep8 或其他我们可以避免错误。

【讨论】:

    【解决方案2】:

    Tensorflow 当前版本为 1.7.0,您已安装版本 1.2.1。看了tensorflow repository 之后,tensorflow.python.data 是在 1.4.0-rc0 中首次使用的,在此之前它在 contrib 中。

    我建议升级到当前版本并重试。或者在 1.2.1 版本中查找正确的路径。

    【讨论】:

      【解决方案3】:

      没有为 VS 安装 Pylint。 我通过搜索(在 VS 中)lint 找到了这一点,灵感来自上面的 Haomin。 出现一个消息框,第一个建议是安装 pylint。 “点安装 pylint”。 我点击了这个,一切都成功了! 这需要很长时间才能找到。

      【讨论】:

        【解决方案4】:

        使用tf 而不是tensorflow。 您已将 tensorflow 导入为 tf,而不是 tensorflow

        import math
        from IPython import display
        from matplotlib import cm
        from matplotlib import gridspec
        from matplotlib import pyplot as plt
        import numpy as np
        import pandas as pd
        from sklearn import metrics
        import tensorflow as tf
        from tf.python.data import Dataset 
        

        【讨论】:

        • 它对你的@DinushaDilanka 有效吗?如果不是,那我就错了。
        • 你不能像这样导入from tf.python.data import Dataset 。你的做法完全错误。
        • 很公平。我将把答案留在这里作为不应该做的例子。
        猜你喜欢
        • 1970-01-01
        • 2020-07-28
        • 2019-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-06
        • 2018-09-09
        相关资源
        最近更新 更多