TensorFlow 2.6后,如何恢复IDE代码自动补全功能?

摘要:很久没写博文,写这个,只是纯粹为了吐槽tf越升级,问题越多。 自TensorFlow 2.6 至 TensorFlow 2.9.1 各个IDE工具的tf.keras 自动补全失效了。 修正办法: 修改python的tensorflow包初始
很久没写博文,写这个,只是纯粹为了吐槽tf越升级,问题越多。 自TensorFlow 2.6 至 TensorFlow 2.9.1 各个IDE工具的tf.keras 自动补全失效了。 修正办法: 修改python的tensorflow包初始化文件: site-packages\tensorflow\_init_.py 将其中的代码: _keras_module = "keras.api._v2.keras" keras = _LazyLoader("keras", globals(), _keras_module) _module_dir = _module_util.get_parent_dir_for_name(_keras_module) if _module_dir: _current_module.__path__ = [_module_dir] + _current_module.__path__ setattr(_current_module, "keras", keras) 改为: import typing as _typing if _typing.TYPE_CHECKING: from keras.api._v2 import keras else: _keras_module = "keras.api._v2.keras" keras = _LazyLoader("keras", globals(), _keras_module) _module_dir = _module_util.get_parent_dir_for_name(_keras_module) if _module_dir: _current_module.__path__ = [_module_dir] + _current_module.__path__ setattr(_current_module, "keras", keras) 重启IDE即可。 相关issues见链接: https://github.com/tensorflow/tensorflow/issues/53144#issuecomment-985179600 看到很多人都转投pytorch了,博主还在坚守tensorflow阵地。 怒其不争,TensorFlow团队能少搞点幺蛾子不~