导入错误:找不到名为 'tensorflow.core' 的模块。

9

在使用pip3安装tensorflow-gpu后,当我尝试import tensorflow as tf时,出现了以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/dlpda/.local/lib/python3.5/site-packages/tensorflow/__init__.py", line 22, in <module>
    from tensorflow.python import pywrap_tensorflow  # pylint: disable=unused-import
  File "/home/dlpda/.local/lib/python3.5/site-packages/tensorflow/python/__init__.py", line 52, in <module>
    from tensorflow.core.framework.graph_pb2 import *
ImportError: No module named 'tensorflow.core'

虽然我在虚拟环境中可以成功导入,但在外部却不能。我该如何解决这个问题才能够导入tensorflow?

虚拟环境外是否也安装了该包? - kstullich
尝试使用pip install --upgrade tensorflow进行升级。 - Aaron Brandhagen
@kstullich 是的,安装在虚拟环境外和内部都可以,但只能在内部运行。 - Ajinkya Ghadge
@AaronBrandhagen 是的,已经升级了。 - Ajinkya Ghadge
@AjinkyaGhadge 好的,听起来你在多个位置安装了虚拟环境之外的多个程序。更新你的路径,使得/home/dlpda/.local/lib/python3.5/site-packages/不再在你的Python路径中。输入'echo $PATH'和/或'echo $PYTHONPATH' - 这将有助于你进行调试。 - Aaron Brandhagen
5个回答

3
这很可能是tensorflow中的一个bug。在1.13版本中,我们有一个包含以下内容的__init__.py:
__all__ = [_s for _s in dir() if not _s.startswith('_')]

# ... later ...
try:                                                                                                                                                                       
  del python
  del core

因此,虽然我们从模块中删除了pythoncore,但是我们没有将它们从__all__中删除。这避免了像from tensorflow import *这样的用例。Tensorflow 1.14将在此更改中修复此问题。


2

问题可能出在软件包安装目录上,有些软件包被安装在主目录下,而有些则安装在/usr/下。我建议你通过查找以下路径中的软件包: ~/.local/lib/python3.5/site-packages 并以超级用户权限重新安装它们,同时删除主目录下的所有软件包。


1
请创建一个虚拟环境,然后在其中安装tensorflow。这样做可以正常工作。

0
针对我的问题(导入错误:找不到模块'tensorflow.core.kernels.boosted_trees'),这个方法解决了:
pip3 install --force-reinstall tensorflow

0

我在使用tensorflow 1.15、django 2.1.0和python 3.7.4时遇到了同样的问题。

但是,在使用tensorflow 1.14、django 2.1.0和python 3.7.4时,一切正常。

最新版本的tensorflow(2.0/1.15)与旧版django存在某些问题。同样的问题也出现在旧版flask中。

https://github.com/tensorflow/tensorflow/issues/34607

建议的解决方案是将您的Django版本从2.1.0更新到2.2.5,这对我有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接