python升级到3.12版本, 开发模式安装包, 在vscode下Pylance无法解析的问题处理

发布时间 2023-11-09 21:56:44作者: 顺其自然,道法自然

问题描述

在python3.11版本下开发python库, 为方便调测, 使用开发模式安装包. 使用如下命令:
pip install -e .
其中-e参数表示开发模式下安装python包, 它并没有把包相关文件拷贝到site-packages目录, 而是创建一个链接指向当前的开发库. 这样, 当自己开发的包修改后会立即生效, 而不必重新安装.
但是升级到python3.12版本后, 会出现无法解析自己的包的情况, 虽然可以正常运行. 现象如下:
image

问题分析

通过比较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里面的这两个文件拷贝过来就可以了.
也可以自己手工创建一个, 文件名和内容如上所示即可.