VSCode中Pylance无法解析自定义模块导入但代码可运行的解决
问题原因与解决方法
原因
Python运行时会自动把脚本所在目录加入sys.path,所以代码能正常执行,但Pylance的静态分析路径没包含该目录,就会弹出导入无法解析的提示。另外VSCode的工作区或Python解释器配置不匹配,也会导致Pylance识别不到当前目录的包结构。
解决办法
设置源代码根目录
要么直接打开python目录作为VSCode工作区,要么在.vscode/settings.json里添加配置(没有这个文件就新建):{ "python.analysis.extraPaths": ["./python"] }如果已经打开
python目录作为工作区,把路径改成./即可。检查Python解释器一致性
点击VSCode右下角的Python版本标识,确认选中的解释器和运行代码时用的是同一个。如果不一样,切换到正确的解释器,Pylance会重新分析路径。重启Pylance服务
按Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(Mac),输入Python: Restart Language Server,重启语言服务后缓存会清空,大概率能解决识别问题。调整导入方式(可选)
把导入语句改成相对导入:from . import players但注意这种方式需要用包的方式运行脚本(比如
python -m python.solver-tic-tac-toe),直接运行脚本会报错,所以优先用前面的方法。
内容的提问来源于stack exchange,提问作者Jinzu
相关产品推荐
相关产品推荐

