在 vscode 中,如何在我的 Python 项目的依赖项中打开符号?
PyCharm 索引这些符号,因此我可以通过 Navigate - Symbol (⌥⌘O) 访问它们。
在 vscode 中,如何在我的 Python 项目的依赖项中打开符号?
PyCharm 索引这些符号,因此我可以通过 Navigate - Symbol (⌥⌘O) 访问它们。
我认为您想要的是VS Code的自动完成和智能感知设置的一部分。
假设我有这个示例结构:
.
├── main.py
└── mypkg
├── __init__.py
└── mymod.py
其中main.py包含:
from mypkg import mymod
mymod.myfunc()
1st,您需要在工作区的.vscode/settings.json中添加自定义包/模块的路径:
"python.autoComplete.extraPaths": [
"/path/to/mypkg"
]
接下来,最好重新加载 VS Code 以使settings.json中的更改生效。
然后,您现在应该能够右键单击符号(例如myfunc
)并执行Go to Definition或Go to Declaration或Peek。
您只需确保当前选择的 Python 解释器与您安装外部或 3rd-party 包的位置相同。您可以从命令面板将解释器设置为“ Python: Select Interpreter ”。您可以在状态栏的右下角检查当前设置的解释器(例如,在下图中显示为“test-py37”)。
然后确保在工作区的.vscode/settings.json中设置相同的 Python 解释器:
"python.pythonPath": "/path/to/.venvs/test-py37/bin/python",
AFAIK,您只需设置一次解释器(“ Python: Select Interpreter ”),它会python.pythonPath
在settings.json 中自动设置。然后保存您的工作区。每次您再次打开工作区时,它都会使用相同的解释器。
然后它将与您的自定义包/模块相同,您可以使用Go to Definition或Go to Declaration或Peek。例如,我安装numpy
在我的test-py37
虚拟环境中。我可以执行Peek > Peek Definition来导航到任何 numpy 的函数。
一些 Python 包实际上是用 C 实现的,因此它们作为.so文件安装在您的站点包中。例如,OpenCV for Python 将安装为cv2.cpython-37m-darwin.so(在 Mac 上)。对于这些类型的包,Go to Definition或Peek功能将无法正常工作:
Pylance 语言服务器将索引会话期间打开的文件中的符号。因此,如果打开工作区外的第 3 方依赖文件,其符号将被索引并出现在Go to Symbol in Workspace (⌘T)
另请参阅此问题:提供一种在库 #35 中搜索符号的方法