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 和格式化工具。建议配置扩展以使用您环境中安装的 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文件中设置断点。 -
在左侧的
Run and Debug面板中,从顶部的下拉菜单中选择Debug Rust/Python,然后点击Start Debugging按钮。
此时,您的调试器应该会在代码库中的任何 .rs 文件中的断点处停止。
详情
调试功能通过上面展示的专门设计的VSCode启动配置运行。初始的Python调试器使用位于py-polars/debug/launch.py的特殊启动脚本启动,并将要调试的脚本名称(目标脚本)作为输入参数传递。启动脚本确定进程ID,将此值写入launch.json配置文件中,编译目标脚本并在当前环境中运行它。此时,第二个(Rust)调试器附加到Python调试器上。结果是两个调试器同时操作同一个运行实例。Python代码中的断点将在Python调试器上停止,而Rust代码中的断点将在Rust调试器上停止。
JetBrains (PyCharm, RustRover, CLion)
信息
需要更多信息。