Visual Studio Code 中的 PyLance 无法识别 TensorFlow.keras 命名空间

问题描述 投票:0回答:1

我在 Visual Studio Code 中遇到 PyLance 的问题,其中tensorflow.keras 命名空间无法被识别,导致 IntelliSense 和自动完成不完整。看来这个问题源于 TensorFlow 利用延迟加载功能 (_KerasLazyLoader) 推迟加载不必要的包,直到需要它们为止。

我搜索了有关该主题的现有问题,但我发现的最新讨论可以追溯到 2023 年底。此外,提出的解决方案主要涉及从长远来看可能不可靠的解决方法。

是否有官方解决方案来确保PyLance正确识别tensorflow.keras命名空间?我无法想象延迟加载通常会破坏 VSCode 智能感知(尽管我肯定是错的)。或者,是否有任何可靠的解决方法在未来的更新中不太可能被破坏?任何见解或指导将不胜感激。

软件: MacOS 索诺玛 14.1.2 Python 3.12 张量流2.16.1

参考之前发布的问题/问题:

  1. https://github.com/microsoft/pylance-release/issues/3249
  2. VSCode 自动完成和建议(IntelliSense)不适用于 Tensorflow 和 Keras 库?
  3. https://community.deeplearning.ai/t/unable-to-import-tensorflow-keras-pylinte0401-import-error-in-visual-studio-code/512586
  4. https://jagaimox.wordpress.com/2020/12/28/configure-python-intellisense-on-vscode-for-tensorflow-1-14-or-1-15/(张量流1.14/1.15)

我在上面的链接中尝试了几种解决方案,但它们对我不起作用。其中一些可能需要一些我需要做但我没有做的额外配置(例如,在tensorflow中引用了_typing。init但没有定义_typing - 可能已经过时)。

python tensorflow visual-studio-code machine-learning intellisense
1个回答
0
投票

Python 3.12/tensorflow 2.16.1的情况下,

这个问题
中添加到tensorflow/__init__.py的代码需要更改为

if _typing.TYPE_CHECKING:
 from tensorflow_estimator.python.estimator.api._v2 import estimator as estimator
 from keras._tf_keras import keras
 from keras._tf_keras.keras import losses
 from keras._tf_keras.keras import metrics
 from keras._tf_keras.keras import optimizers
 from keras._tf_keras.keras import initializers

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.