美文网首页
pycharm中TensorFlow 2.x自动补全/跳转失败处

pycharm中TensorFlow 2.x自动补全/跳转失败处

作者: 井底蛙蛙呱呱呱 | 来源:发表于2024-08-14 09:59 被阅读0次

    由于TensorFlow 2.x官方安装包的一些问题,在pycharm中无法进行自动补全以及点击跳转源码。

    要解决这些问题,需要对源码做一些修改。分两步
    1、修改site-packages/tensorflow/__init__.py中的以下代码,大约位于380~390行,源代码如下:

    _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)
    

    2、将/site-packages/keras/ 复制到 /site-packages/tensorflow/,或者另一种更好的方式,使用软连接:

    ln -s <full-path-to-site-package>/site-packages/keras <full-path-to-site-package>/tensorflow/keras
    

    做了如下更改后,进行Invalid Caches -> Invalidate and Restart。重启后便能解决绝大部分问题,但是依然有一些小问题,如from tensorflow.keras.layers import DenseFeatures会显示找不到DenseFeatures方法。但是直接使用tf.keras.layers.DenseFeatures显示没问题,点击也可以跳转源码,所以如果不嫌麻烦可以在代码中将前面的模块名称都写出来,如tf.keras.layers.DenseFeatures

    参考: https://github.com/tensorflow/tensorflow/issues/53144

    相关文章

      网友评论

          本文标题:pycharm中TensorFlow 2.x自动补全/跳转失败处

          本文链接:https://www.haomeiwen.com/subject/imqskjtx.html