VSCode可自动导入外部Python类型,但无法识别本地函数/类,求排查
以下是几个可行的修复步骤:
确认VSCode已选中Poetry虚拟环境
按Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(Mac),执行Python: Select Interpreter命令,选择Poetry生成的虚拟环境路径:~/Development/<django repo name>/.venv/bin/python(Mac/Linux)或对应Windows路径。只有选中正确的虚拟环境,Pylance才能正确关联项目依赖和本地模块。修正
extraPaths配置的占位符
你配置中的<django repo name>是占位符,需要替换为实际的仓库名称。更稳妥的方式是使用${workspaceFolder}变量代替硬编码路径,比如:"python.autoComplete.extraPaths": ["${workspaceFolder}/server"], "python.analysis.extraPaths": ["${workspaceFolder}/server"]这样可避免因路径拼写错误或环境变化导致的问题。
确保本地目录是Python可识别的包
在server目录(以及dataclasses.py所在的父目录)中添加空的__init__.py文件,Python会将包含该文件的目录视为合法包,Pylance才能正确索引其中的类和函数。重启Pylance语言服务
按Ctrl+Shift+P执行Python: Restart Language Server命令,触发Pylance重新扫描项目文件,更新索引缓存。检查
.env文件的PYTHONPATH设置
如果你的.env文件中定义了PYTHONPATH,确保它包含server目录,比如:PYTHONPATH=./server这会让Python和Pylance自动将该目录加入模块搜索路径。
内容的提问来源于stack exchange,提问作者Erik

