无法在 PyCharm 2019.2 中导入 Keras(来自 TensorFlow 2.0)

Posted

技术标签:

【中文标题】无法在 PyCharm 2019.2 中导入 Keras(来自 TensorFlow 2.0)【英文标题】:Unable to import Keras(from TensorFlow 2.0) in PyCharm 2019.2 【发布时间】:2020-01-30 23:26:38 【问题描述】:

我刚刚在 PyCharm 中安装了稳定版 TensorFlow 2.0(2019 年 10 月 1 日发布)。

问题keras包不可用

实际错误是:

"无法从 tensorflow 导入名称 'keras'"

我已经通过pip install tensorflow==2.0.0安装了CPU version,然后卸载了CPU版本,安装了GPU版本,通过pip install tensorflow-gpu==2.0.0.

上述工作版本的 TensorFlow 都不能正常工作(无法通过 from tensorflow.package_X import Y 导入 keras 或其他包)。

如果我将 TensorFlow 恢复到版本 2.0.0.b1keras 可以作为一个包使用(PyCharm 识别它)并且一切都运行顺利。

有没有办法解决这个问题?我在安装过程中犯了错误吗?

更新 --- 从 Python 控制台导入可以正常工作并允许导入而不会出现任何错误。

【问题讨论】:

我今天安装了它工作正常我使用 pip install tensorflow-gpu 。 您应该提供一段实际失败并显示问题的代码,而不是提供一些没有真正显示任何内容的屏幕截图。您可能只是以错误的方式导入内容。 截图旨在证明 PyCharm 甚至无法在 TensorFlow 中看到 keras 包。错误是'cannot import keras from tensorflow --- Unable to find module keras' 这似乎是 PyCharm IDE 的错误,据我在 GitHub 和 PyCharm 上打开的单独问题上阅读:intellij-support.jetbrains.com/hc/en-us/community/posts/… 好的,很抱歉可能有点粗鲁,我真的不明白问题出在哪里。很高兴您能够(或多或少)解决它。 【参考方案1】:

已解决 --- 请参阅下面此问题的答案。

解决方案 1(最佳解决方案)

是上面提供的公认答案。它适用于 EAP 版本,我在几台装有 Windows 的机器上进行了测试。

解决方案 2

虽然 PyCharm 无法识别模块,但运行 .py 文件可以。我仍然不知道这是TensorFlow还是PyCharm的问题,但这是我找到的解决方案,很多人都遇到过这个问题。

解决方案 3

tensorflow_core而不是tensorflow导入模块

示例:from tensorflow_core.python.keras.preprocessing.image import ImageDataGenerator

但是,正如@Nagabhushan S N 在接受的答案下面和上面的评论中提到的那样:

另一方面,如果您不这样做,请避免从 tensorflow_core 导入 希望将来重构您的代码。

【讨论】:

答案确实已经过编辑,因为我明确指出上面添加了最佳解决方案。 好的,抱歉。我的错。如果您可以进行细微更改,我将删除反对票 没问题,很好,我们现在在同一个波长上(我现在将编辑它) 另外,正如 Praveen Kulkarni 的回答中提到的,我建议您为第三种解决方案添加以下警告:On the other hand avoid imports from tensorflow_core if you do not want to refactor your code in the future. 您可以提供指向他的回答的链接:***.com/a/58192020/3337089【参考方案2】:

对于 PyCharm 用户

对于那些使用 PyCharm 的人。从 here 安装未来 (EAP) 版本 2019.3 EAP build 193.3793.14。有了它,您将能够对当前稳定的 TensorFlow 版本(即 2.0)使用自动完成功能。我已经尝试过了,它可以工作:)。

对于其他 IDE

对于其他 IDE 的用户,只有在稳定版本发布后才能解决,现在无论如何都是这样。但这可能需要更多时间来修复。见评论here。我认为等待并继续使用version 2.0.0.b1 是明智的。另一方面,如果您以后不想重构代码,请避免从 tensorflow_core 导入。

注意:要使自动完成功能正常工作,请使用以下导入语句

import tensorflow.keras as tk

# this does not work for autocomplete 
# from tensorflow import keras as tk  

自动完成功能适用于 CPU 版本的 TensorFlow 2.0.0,但自动完成功能不适用于 GPU 版本。

【讨论】:

是的,我也会等到 PyCharm 解决这个问题。感谢您的评论。

以上是关于无法在 PyCharm 2019.2 中导入 Keras(来自 TensorFlow 2.0)的主要内容,如果未能解决你的问题,请参考以下文章

如何在pycharm中导入imputer? [复制]

在pycharm中导入自定义模块

怎么在pycharm中导入文件夹?

在 PyCharm 中导入 .json 文件时出现问题 [重复]

pycharm中导入自写模块时,模块下出现红线

5.pycharm中导入第三方模块的方法