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

时间:2019-10-11 12:16:19

标签: python python-3.x tensorflow

我从事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

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

如果我更改了如下代码:

...
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” 吗?需要什么配置?

谢谢。

1 个答案:

答案 0 :(得分:0)

tensorflow_core是实现细节,不能直接使用-source

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

  1. 卸载现有版本(如果使用sudo安装了Tensorflow,则可能需要在命令前加上sudo
pip uninstall tensorflow
  1. 为您的项目创建一个virtualenvvirtualenv允许您在每个项目中安装依赖项,而不会干扰系统软件包或其他项目。要了解更多信息,请参阅docs
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版本。要检查是否可以运行:

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

激活您的虚拟环境

  1. 更新点-一个Python包管理器:
pip install --upgrade pip
  1. 现在您终于可以安装Tensorflow:
pip install tensorflow
  1. 验证安装是否正常:
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!
  1. 您已经提到您正在将Eclipse与PyDev一起用作IDE。您可以告诉它使用新创建的virtualenv。我本人不是PyDev的用户,所以我无法为您提供帮助,但幸运的是,详细的说明可以在PyDev's manual上找到。