如何打开 Python 依赖项的符号?
How to open symbols of Python dependencies?
在 vscode 中,如何打开我的 Python 项目的依赖项中的符号?
PyCharm 索引这些符号,以便我可以通过 Navigate - Symbol (⌥⌘O) 访问它们。
我想你想要的是 VS Code Autocomplete and Intellisense 设置的一部分。
为您定制packages/modules
假设我有这个示例结构:
.
├── main.py
└── mypkg
├── __init__.py
└── mymod.py
其中 main.py 包含:
from mypkg import mymod
mymod.myfunc()
1,您需要在工作区的 .vscode/settings.json:[=24 中添加自定义 packages/modules 的路径=]
"python.autoComplete.extraPaths": [
"/path/to/mypkg"
]
接下来,最好重新加载 VS Code 以使 settings.json 中的更改生效。
然后,您现在应该可以右键单击该符号(例如 myfunc
)并执行 Go to Definition 或 转到声明 或Peek.
对于外部或第 3 方符号
您只需确保当前选择的 Python 解释器与您安装外部或第 3 方包的解释器相同。您可以从命令面板将解释器设置为“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 中。然后保存您的工作区。每次您再次打开工作区时,它都会使用相同的解释器。
然后就和你的自定义方式一样了packages/modules,你可以使用Go to Definition或者Go to Declaration[=84] =] 或 Peek。例如,我在 test-py37
虚拟环境中安装了 numpy
。我可以执行 Peek > Peek Definition 导航到任何 numpy 函数。
备注
一些 Python 包实际上是用 C 实现的,因此它们作为 .so 文件安装在您的站点包中。例如,用于 Python 的 OpenCV 将安装为 cv2.cpython-37m-darwin.so(在Mac)。对于这些类型的包,Go to Definition 或 Peek 功能将无法正常工作:
Pylance 语言服务器将在会话期间打开的文件中索引符号。因此,如果打开工作区外的第三方依赖文件,其符号将被索引并出现在 Go to Symbol in Workspace (⌘T)
另请参阅此问题:Provide a way to search for symbols in libraries #35
在 vscode 中,如何打开我的 Python 项目的依赖项中的符号?
PyCharm 索引这些符号,以便我可以通过 Navigate - Symbol (⌥⌘O) 访问它们。
我想你想要的是 VS Code Autocomplete and Intellisense 设置的一部分。
为您定制packages/modules
假设我有这个示例结构:
.
├── main.py
└── mypkg
├── __init__.py
└── mymod.py
其中 main.py 包含:
from mypkg import mymod
mymod.myfunc()
1,您需要在工作区的 .vscode/settings.json:[=24 中添加自定义 packages/modules 的路径=]
"python.autoComplete.extraPaths": [
"/path/to/mypkg"
]
接下来,最好重新加载 VS Code 以使 settings.json 中的更改生效。
然后,您现在应该可以右键单击该符号(例如 myfunc
)并执行 Go to Definition 或 转到声明 或Peek.
对于外部或第 3 方符号
您只需确保当前选择的 Python 解释器与您安装外部或第 3 方包的解释器相同。您可以从命令面板将解释器设置为“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 中。然后保存您的工作区。每次您再次打开工作区时,它都会使用相同的解释器。
然后就和你的自定义方式一样了packages/modules,你可以使用Go to Definition或者Go to Declaration[=84] =] 或 Peek。例如,我在 test-py37
虚拟环境中安装了 numpy
。我可以执行 Peek > Peek Definition 导航到任何 numpy 函数。
备注
一些 Python 包实际上是用 C 实现的,因此它们作为 .so 文件安装在您的站点包中。例如,用于 Python 的 OpenCV 将安装为 cv2.cpython-37m-darwin.so(在Mac)。对于这些类型的包,Go to Definition 或 Peek 功能将无法正常工作:
Pylance 语言服务器将在会话期间打开的文件中索引符号。因此,如果打开工作区外的第三方依赖文件,其符号将被索引并出现在 Go to Symbol in Workspace (⌘T)
另请参阅此问题:Provide a way to search for symbols in libraries #35