自 TensorFlow 2.6 起,修正IDE代码自动补全失效的方法
很久没写博文,写这个,只是纯粹为了吐槽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团队能少搞点幺蛾子不~