【问题标题】:AttributeError: 'NoneType' object has no attribute 'modules' in tensorflowAttributeError:“NoneType”对象在张量流中没有属性“模块”
【发布时间】:2018-04-01 19:05:57
【问题描述】:

我一直在学习 tensorflow,到现在一切都很好。我什至使用 GPU 用 tensorflow 进行了一些计算。但是在运行 import tensorflow as tf 命令时突然出现以下错误:

Traceback (most recent call last):

  File "<ipython-input-6-41389fad42b5>", line 1, in <module>
    import tensorflow as tf

  File "/home/diego/.local/lib/python2.7/site-packages/tensorflow/__init__.py", line 24, in <module>
    from tensorflow.python import *

  File "/home/diego/.local/lib/python2.7/site-packages/tensorflow/python/__init__.py", line 49, in <module>
    from tensorflow.python import pywrap_tensorflow

ImportError: cannot import name pywrap_tensorflow

这很容易修复,我只是重置了控制台。但这很烦人,因为我每次运行脚本后都需要重置控制台。 (即使脚本只是“import tensorflow as tf”

当我用 F5 运行整个脚本时,我得到了一个不同的错误,即使唯一的命令是 import tensorflow as tf。 我在 Ubuntu 16.04.3 LTS 上的 spyder 2.7 Python 2.7.12 中运行脚本。

    File "/usr/lib/python2.7/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 699, in runfile
      execfile(filename, namespace)

    File "/usr/lib/python2.7/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 81, in execfile
      builtins.execfile(filename, *where)

    File "/home/diego/Desktop/Diego/Trial-Job/Code/pointnet/test2tf.py", line 7, in <module>
      import tensorflow as tf

    File "/home/diego/.local/lib/python2.7/site-packages/tensorflow/__init__.py", line 24, in <module>
      from tensorflow.python import *

    File "/home/diego/.local/lib/python2.7/site-packages/tensorflow/python/__init__.py", line 52, in <module>
      from tensorflow.core.framework.graph_pb2 import *

    File "/home/diego/.local/lib/python2.7/site-packages/tensorflow/core/framework/graph_pb2.py", line 6, in <module>
      from google.protobuf import descriptor as _descriptor

    File "/home/diego/.local/lib/python2.7/site-packages/google/protobuf/__init__.py", line 37, in <module>
      __import__('pkg_resources').declare_namespace(__name__)

    File "/home/diego/.local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 50, in <module>
      from pkg_resources.extern import six

    File "/home/diego/.local/lib/python2.7/site-packages/pkg_resources/extern/__init__.py", line 44, in load_module
      mod = sys.modules[extant]

  AttributeError: 'NoneType' object has no attribute 'modules'

谢谢。

【问题讨论】:

  • 问题似乎是spyder,我在控制台上工作没有任何错误。

标签: python-2.7 tensorflow compiler-errors ubuntu-16.04 spyder


【解决方案1】:

我猜问题出在通配符导入上

from tensorflow.python import *

正如Pep 8 Guide 上所说的那样

应避免通配符导入(来自模块导入 *),因为它们使命名空间中存在哪些名称变得不清楚,从而使读者和许多自动化工具感到困惑 (...)

您是否尝试过按名称导入每个使用的模块并删除通配符导入?

【讨论】:

  • 但我从未使用通配符显式导入任何内容,我只是 import tensorflow as tf,“像其他人一样”,隐式使用了通配符。我是 tensorflow 的新手,所以任何额外的信息都会有所帮助。无论如何,我会尝试你的方法,谢谢。
猜你喜欢
  • 2020-06-09
  • 1970-01-01
  • 2018-09-25
  • 2020-01-04
  • 2017-12-25
  • 2019-11-16
  • 2020-10-22
  • 2019-02-20
  • 2017-12-06
相关资源
最近更新 更多