Python
Python 支持在 Zed 中以原生方式提供。
- Tree Sitter:tree-sitter-python
- 语言服务器:pyright
配置
pyright 语言服务器提供灵活的配置选项,在 JSON 格式的文本配置中指定。默认情况下,该文件名为 pyrightconfig.json
,位于项目的根目录中。Pyright 设置也可以在 pyproject.toml
文件的 [tool.pyright]
部分中指定。如果同时存在 pyrightconfig.json
文件和 pyproject.toml
文件,则 pyrightconfig.json
文件始终优先。
有关更多信息,请参阅 Pyright 配置文档。
设置
pyright 语言服务器还接受特定于 LSP 的设置,不一定与项目相关。这些设置可以在 settings.json
的 lsp
部分中更改。
例如,为了
- 使用严格类型检查级别
- 诊断工作区中的所有文件,而不是仅诊断默认的打开文件
- 提供特定 Python 解释器的路径
{
"lsp": {
"pyright": {
"settings": {
"python.analysis": {
"diagnosticMode": "workspace",
"typeCheckingMode": "strict"
},
"python": {
"pythonPath": ".venv/bin/python"
}
}
}
}
}
有关详细信息,请参阅 Pyright 设置文档。
虚拟环境
Python 虚拟环境 允许您将项目的所有依赖项(包括 Python 解释器和包管理器)存储在单个目录中,该目录与计算机上的任何其他 Python 项目隔离。
默认情况下,Pyright 语言服务器将在默认全局位置中查找 Python 包。但您还可以将 Pyright 配置为使用给定虚拟环境中安装的包。
为此,请在项目的根目录中创建一个名为 pyrightconfig.json
的 JSON 文件。此文件必须包含两个键
venvPath
:从项目目录到任何包含一个或多个虚拟环境目录的目录的相对路径venv
:虚拟环境目录的名称
例如,一种常见的方法是在项目目录的根目录中使用以下命令创建一个名为 .venv
的虚拟环境目录
# create a virtual environment in the .venv directory
python3 -m venv .venv
# set up the current shell to use that virtual environment
source .venv/bin/activate
执行此操作后,您将使用以下内容创建一个 pyrightconfig.json
{
"venvPath": ".",
"venv": ".venv"
}
如果您更喜欢使用 pyproject.toml
文件,则可以添加以下部分
[tool.pyright]
venvPath = "."
venv = ".venv"
您还可以在 settings.json
文件 (pyrights 设置) 中直接配置此选项,如 配置 Python 环境 中所建议的。
{
"lsp": {
"pyright": {
"settings": {
"python": {
"pythonPath": ".venv/bin/python"
}
}
}
}
}
代码格式化和 Linting
Pyright 语言服务器不提供代码格式化或 linting。如果您想在保存时检测 lint 错误并重新格式化 Python 代码,您需要设置。
用于格式化 Python 代码的常用工具是 Ruff。它是用 Rust 编写的另一个工具,是一个非常快速的 Python linter 和代码格式化程序。
它可以通过 Ruff 扩展 获得。但是,通过扩展进行的代码格式化尚不可用。您可以通过将以下配置添加到 settings.json
中来设置格式化程序以在保存时运行,假设 Ruff
已安装在您的 Python 环境中。
{
"languages": {
..., // other languages
"Python": {
"format_on_save": {
"external": {
"command": "python",
"arguments": [
"-m",
"ruff",
"format",
"-"
]
}
}
}
}
}