首先如果直接删除下图File->Setting->Editor->File Types->Python Stub里面的*.pyi的话,你会遇到的问题:
- 内置函数的提示消失
- 一些基本的库会出现红色波浪线
- 有一些第三方库不能使用
之所以会出现跳转到pyi文件的原因,原因有很多,大部分是因为下面两点:
1.有一些第三方库需要同时兼顾py2和py3 (所以在跳转打开的pyi文件了里面,右键然后点show in explorer,大概率会去到一个叫做 “2and3”的文件夹)
2.有一些在Python 3.5的Type Hint引入之前的第三方库,作者并不想支持性的变量类型(Type Hint),其实也就是老版本停更了。
基于上面的情况就引入了stub file,以.pyi文件来定义第三方库里面需要用的函数类型和返还值,就像下图里面可以看到pyi基本都是箭头指向的
所以解决方法:
基于基本遇到这种情况都是因为上面的第一个原因引起的,其实py2和3都有在用的一些基本的第三方库,一直有在更新,所以不会出现type hint有问题原因。
直接把跳转到的pyi文件改名,比如用上图的例子直接把“ntpath.pyi”文件改名,比如"__ntpath.pyi"
但是有时候一个第三方库里面的函数可能会定义在好几个pyi文件,需要一个一个去改。
但是如果是2and3里面的第三方库基于上面提到的,一直有更新的第三方库是哪怕没有pyi也不会有问题。所以简单粗暴的方法,我直接选择private整个2and3文件夹,直接把2and3改成__2and3,让py找不到这些第三方库的pyi文件。
(如果有第三方库报错,那就自己建一个相对应的py版本文件夹,加入需要的pyi文件。
目前我哪怕跑tensorflow和其他一些数据学习的程序,也没遇到过错误)