![Pycharm 错误导入错误警报,尽管代码可以执行](https://linux22.com/image/951726/Pycharm%20%E9%94%99%E8%AF%AF%E5%AF%BC%E5%85%A5%E9%94%99%E8%AF%AF%E8%AD%A6%E6%8A%A5%EF%BC%8C%E5%B0%BD%E7%AE%A1%E4%BB%A3%E7%A0%81%E5%8F%AF%E4%BB%A5%E6%89%A7%E8%A1%8C.png)
我是 PyCharm IDE 的新手(习惯使用 VS 代码)。我在 IDE 上收到导入错误警报,其中包含以下代码行:
from tensorflow.keras.preprocessing.text import Tokenizer
Error: Cannot find reference 'keras' in '__init__.py'
但当我真正点击运行时,它完美地打印了输出,而 IDE 上没有任何错误。
我处于虚拟环境“/home/instantinopaul/.virtualenvs/tfcert/bin/python”(与项目解释器设置相同)中,它指向/usr/bin/python3.8
Tensorflow 仅安装在虚拟环境中,而不是全局安装。
版本详细信息:Python 版本:3.8 Tensorflow 版本:2.9.0 PyCharm 2023.1(社区版)构建号 #PC-231.8109.197,构建于 2023 年 3 月 29 日运行时版本:17.0.6+10-b829.5 amd64 VM:JetBrains sro 的 OpenJDK 64 位服务器 VM Linux 5.19.0-38-generic GC:G1 年轻代,G1 老一代内存:1988M 核心:12 注册表:debugger.new.tool.window.layout=true ide.experimental.ui=true
当前桌面:ubuntu:GNOME Ubuntu 22.04
答案1
似乎自 tf 2.6 以来,所有 IDE(至少 Vs code 和 pycharm)都存在自动完成错误的问题。发生这种情况的原因是 tensorflow 通过延迟加载方式加载 keras,而 IDE 无法解决此问题。
请查看 github 上的这个问题帖子PyCharm 无法解析 tensorflow.keras 下的任何内容
有两种方法可以解决此问题
- 尝试修改文件 site-packages/tensorflow/在里面.py 靠近第 387 行 上面的帖子中提到过。
- 使用,
import keras.api._v2.keras as keras
因为这似乎是 tensorflow 自身加载的精确包。