如何在VSCode/PyCharm中调试PyPSA-EUR脚本?
调试PyPSA-EUR中prepare_sector_network.py的方案指引
推荐方案选择
优先采用方案a(通过运行配置调用snakemake调试脚本),该方案完全贴合真实snakemake工作流环境,能精准复现脚本运行逻辑;方案b需手动模拟snakemake参数与依赖,易出现环境不一致问题;方案c目前不支持调试,暂不考虑。
VSCode的launch.json配置示例
创建或修改.vscode/launch.json,添加以下配置:
{ "version": "0.2.0", "configurations": [ { "name": "Debug PyPSA-EUR prepare_sector_network", "type": "python", "request": "launch", "module": "snakemake", "args": [ "prepare_sector_network", "--cores", "1", "--configfile", "config/config.yaml" ], "cwd": "${workspaceFolder}", "env": {"PYTHONPATH": "${workspaceFolder}"}, "justMyCode": false } ] }
- 说明:
args中的prepare_sector_network为目标snakemake规则名,--configfile指定项目配置文件路径,--cores 1确保单进程运行便于调试;justMyCode设为false可让调试器进入snakemake相关模块,保证脚本内断点正常触发。
PyCharm运行配置示例
- 打开
Run > Edit Configurations - 点击+号,选择
Python - 填写配置参数:
- Name:
Debug PyPSA-EUR prepare_sector_network - Module name:
snakemake - Parameters:
prepare_sector_network --cores 1 --configfile config/config.yaml - Working directory: 选择PyPSA-EUR项目根目录
- Environment variables: 添加
PYTHONPATH=<你的项目根目录绝对路径> - 勾选
Add content roots to PYTHONPATH和Add source roots to PYTHONPATH
- Name:
- 点击
Apply保存,启动调试即可
断点未生效的排查要点
若之前尝试方案a时断点未触发,检查以下内容:
- VSCode需确认
justMyCode未屏蔽脚本代码;PyCharm需确保调试选项未排除目标脚本所在目录 - 配置的工作目录必须是PyPSA-EUR项目根目录,路径无拼写错误
- 确认snakemake规则名与脚本对应,规则的
script字段指向prepare_sector_network.py - 调试使用的Python解释器为PyPSA-EUR项目的虚拟环境,依赖包安装完整
关于mock_snakemake功能的说明
脚本末尾if __name__ == "__main__"模块中的mock_snakemake功能若已过时,不建议依赖该方式调试,优先使用方案a保证环境一致性。
内容的提问来源于stack exchange,提问作者Stefan
相关产品推荐
相关产品推荐

