Python
Zed 原生支援 Python。
- 樹狀解析器: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
中,將格式化程式設定為在儲存時執行,前提是您的 Python 環境中已安裝 Ruff
。
{
"languages": {
..., // other languages
"Python": {
"format_on_save": {
"external": {
"command": "python",
"arguments": [
"-m",
"ruff",
"format",
"-"
]
}
}
}
}
}