IDE 配置
正确使用和配置集成开发环境 (IDE) 将帮助您更高效地使用 Polars。本页包含一些配置流行 IDE 的建议。
Visual Studio Code
请务必将 VSCode 配置为使用 Makefile 创建的虚拟环境。
扩展
推荐以下扩展。
rust-analyzer
如果您编写 Rust 代码,您将需要 rust-analyzer 扩展。此扩展为 Rust 代码提供代码补全功能。
为了使其在 Polars 代码库中良好运行,请将以下设置添加到您的 .vscode/settings.json
中
{
"rust-analyzer.cargo.features": "all",
"rust-analyzer.cargo.targetDir": true
}
Ruff
Ruff 扩展将帮助您符合 Python 代码的格式要求。我们使用 Ruff 的 linter 和 formatter。建议将此扩展配置为使用您环境中安装的 Ruff。这将确保它使用正确的 Ruff 版本和配置。
{
"ruff.importStrategy": "fromEnvironment"
}
CodeLLDB
CodeLLDB 扩展对于调试 Rust 代码很有用。您也可以调试从 Python 调用(请参阅下文)的 Rust 代码。
调试
由于 Python 和 Rust 的互操作方式,从 Python 调用调试 Rust 侧的开发可能会很困难。本指南将展示如何设置调试环境,使从 Python 脚本调用的 Rust 代码调试变得轻松。
准备
首先安装 CodeLLDB 扩展(见上文)。然后将以下两个配置添加到您的 launch.json
文件中。此文件通常位于项目根目录的 .vscode
文件夹中。有关 launch.json
文件的更多信息,请参阅 VSCode 官方文档。
launch.json
{
"configurations": [
{
"name": "Debug Rust/Python",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/py-polars/debug/launch.py",
"args": [
"${file}"
],
"console": "internalConsole",
"justMyCode": true,
"serverReadyAction": {
"pattern": "pID = ([0-9]+)",
"action": "startDebugging",
"name": "Rust LLDB"
}
},
{
"name": "Rust LLDB",
"pid": "0",
"type": "lldb",
"request": "attach",
"program": "${workspaceFolder}/py-polars/.venv/bin/python",
"stopOnEntry": false,
"sourceLanguages": [
"rust"
],
"presentation": {
"hidden": true
}
}
]
}
信息
在某些系统上,除非禁用 ptrace 保护,否则 LLDB 调试器将无法附加。要禁用此功能,请运行以下命令
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
运行调试器
-
创建一个包含 Polars 代码的 Python 脚本。确保您的虚拟环境已激活。
-
在任何
.rs
或.py
文件中设置断点。 -
在左侧的
运行和调试
面板中,从顶部的下拉菜单中选择Debug Rust/Python
,然后点击开始调试
按钮。
此时,您的调试器应在代码库中任何 .rs
文件中的断点处停止。
详情
此调试功能通过上面所示的特殊设计的 VSCode 启动配置运行。初始 Python 调试器使用位于 py-polars/debug/launch.py
的特殊启动脚本启动,并将要调试的脚本(目标脚本)名称作为输入参数传递。启动脚本确定进程 ID,将此值写入 launch.json
配置文件,编译目标脚本并在当前环境中运行它。此时,第二个(Rust)调试器附加到 Python 调试器。结果是两个同时运行的调试器在同一个运行实例上操作。Python 代码中的断点将由 Python 调试器停止,Rust 代码中的断点将由 Rust 调试器停止。
JetBrains (PyCharm, RustRover, CLion)
信息
需要更多信息。