python升级到3.12版本, 开发模式安装包, 在vscode下Pylance无法解析的问题处理
问题描述
在python3.11版本下开发python库, 为方便调测, 使用开发模式安装包. 使用如下命令:
pip install -e .
其中-e
参数表示开发模式下安装python包, 它并没有把包相关文件拷贝到site-packages
目录, 而是创建一个链接指向当前的开发库. 这样, 当自己开发的包修改后会立即生效, 而不必重新安装.
但是升级到python3.12版本后, 会出现无法解析自己的包的情况, 虽然可以正常运行. 现象如下:
问题分析
通过比较3.11版本的文件, 发现3.11版本下生成了两个文件, 一个是包名.egg-link
, 内容是
D:\MyCode\Libs\Python\
.
另外一个文件是easy-install.pth
, 内容是d:\mycode\libs\python
.
而3.12版本没有这两个文件了, 取而代之生成了__editable___xxx_finder.py
和__editable__.xxx.pth
两个文件. 而vscode的pylance估计没有适配它, 所以出现了问题.
问题解决
只需要把python3.11里面的这两个文件拷贝过来就可以了.
也可以自己手工创建一个, 文件名和内容如上所示即可.