在tensorflow包下的__init__.py
文件中定义了一个contrib变量表示tensorflow.contrib包下的内容,但是tensorflow.contrib这个包是懒加载的,也就是只有用到这个contrib变量的时候contrib包中的内容才会被加载。
这样就导致IDE无法通过分析源文件获取到contrib包下的内容,解决方法非常简单,把这个懒加载去掉。直接from tensorflow import contrib
。
from tensorflow import contrib as contrib
from tensorflow.python.util.lazy_loader import LazyLoader # pylint: disable=g-import-not-at-top
# contrib = LazyLoader('contrib', globals(), 'tensorflow.contrib')
del LazyLoader
在加载过程中,tensorflow乱改path,导致IDE无法正常分析,在tensorflow包下的init函数中加上
from tensorflow.python.estimator.api import *
from tensorflow._api.v1 import *