无法使用原始代码“ tensorflow.python.keras.utils.data_utils”导入

Unable to import with original code “tensorflow.python.keras.utils.data_utils”

我从事Java已有多年经验,现在我正在使用Tensorflow 2.0学习Python

开发工具是Eclipse + PyDev。 在Python中使用from ... import语句存在一个小问题。

我创建了一个测试文件local_fashion_mnist.py,并从以下位置复制了内容并将其粘贴到local_fashion_mnist.py中:

/usr/local/lib/python3.6/dist-packages/tensorflow_core/python/keras/datasets/fashion_mnist.py

1
2
3
4
5
6
7
8
9
10
11
12
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import gzip
import os

import numpy as np

from tensorflow.python.keras.utils.data_utils import get_file
from tensorflow.python.util.tf_export import keras_export
...

但是Eclipse显示错误:无法解析的导入:get_file

如果我将代码更改如下:

1
2
3
4
...
from tensorflow_core.python.keras.utils.data_utils import get_file
from tensorflow_core.python.util.tf_export import keras_export
...

这样代码就可以正常工作了。

我的问题是:

1)。 为什么我需要将代码从" tensorflow.python.keras.utils.data_utils"更改为" tensorflow_core.python.keras.utils.data_utils"?

2)。 我可以仅使用代码中的原始" tensorflow.python.keras.utils.data_utils"吗? 需要什么配置?

谢谢。


tensorflow_core是实现细节,并不意味着可以直接使用-源。

我认为您的安装有问题,因此让我们尝试再次安装Tensorflow,这次使用virtualenv(在Python世界中这是一个好习惯)。

  • 卸载现有版本(如果使用sudo安装Tensorflow,则可能需要在命令前加上sudo前缀:
  • 1
    pip uninstall tensorflow
  • 为您的项目创建一个virtualenvvirtualenv允许您在每个项目中安装依赖项,而不会干扰系统软件包或其他项目。要了解更多信息,请参阅文档。
  • 1
    2
    3
    cd /path/to/your/project
    python3 -m venv venv # create a virtualenv named `venv` in your project directory
    source ./venv/bin/activate # activate just created virtualenv

    您现在可以在此终端窗口中检查,您将使用本地Python版本。要检查您可以运行:

    1
    2
    3
    which python
    # should output something like: /path/to/your/project/venv/bin/python
    # running this command outside virtualenv will give use something like: /usr/bin/python

    要退出virtualenv,您只需运行deactivate命令。要再次激活virtualenv,可以运行前面提到的命令:source ./venv/bin/activate

    请激活您的virtualenv。

  • 更新点-Python包管理器:
  • 1
    pip install --upgrade pip
  • 现在您终于可以安装Tensorflow:
  • 1
    pip install tensorflow
  • 验证安装是否正常:
  • 1
    2
    3
    python # you'll enter REPL, an interactive Python command line
    >>> from tensorflow.python.keras.utils.data_utils import get_file
    >>> help(get_file) # hopefully this shows a documentation!

  • 您已经提到您正在将Eclipse与PyDev一起用作IDE。您可以告诉它使用新创建的virtualenv。我自己不是PyDev的用户,因此我无法为您提供帮助,但幸运的是,有关如何执行此操作的详细说明可以在PyDev的手册中找到。