在序言中,请注意我是 VScode 的新用户。
在我目前参与的一个项目中,工作流程或多或少如下:
该脚本在远程服务器中运行(在Linux操作系统下,而我在Windows操作系统下),但现在这个主题现在很困难。
我正在使用Python调试器“attach”,我面临着当前的困难
第一个断点添加:
import debugpy
debugpy.listen(5678)
print("Waiting for debugger attach")
debugpy.wait_for_client()
debugpy.breakpoint()
我想我应该提供更多信息,但是哪些信息?我错过了什么
总结一下程序的工作流程:
bash script ------> main.py ----------> external soft1 ----> etc
| |
| |
external soft2 python file (2)
谢谢
保罗
我做了一个基本的例子,应该可以重现这个问题(断点也被错过) - 请注意这里的主要优点,它打印了我在实际程序中错过的一些信息。
该示例由4个文件组成:
在实践中,输入
"sh start.sh"
#!/bin/bash
python test_breakpoint.py
#!/bin/bash
python inside_file.py
import os, subprocess, debugpy
path = os.getcwd()
shfile = "run_python.sh"
# /// DEBUGGING
debugpy.listen(5678)
print("Waiting for Python debugger: attach")
debugpy.wait_for_client()
debugpy.breakpoint()
# /// DEBUGGING
command_line = f"sh {shfile}"
args = command_line.split()
run = subprocess.run(args)
import debugpy
print("\n*** here is a breakpoint ***\n")
debugpy.breakpoint()
{
"version": "0.2.0",
"configurations": [
{
"name": "Python Debugger: Attach",
"type": "debugpy",
"request": "attach",
"port": 5678,
"host": "localhost",
"justMyCode": true,
"pythonArgs": [
"-Xfrozen_modules=off"
],
"env": {
"PYDEVD_DISABLE_FILE_VALIDATION": "1"
}
}
]
}
无论我实现什么,都会出现以下警告,并且主 python 文件(此处为 test_breakpoint.py)之外的任何断点都会被忽略...... ...我错过了什么?
感谢您的帮助
0.00s - 调试器警告:似乎正在使用冻结的模块,这可能 0.00s - 使调试器错过断点。请传递 -Xfrozen_modules=off 0.00s - python 禁用冻结模块。 0.00s - 注意:调试将继续。设置 PYDEVD_DISABLE_FILE_VALIDATION=1 以禁用此验证。 等待Python调试器:attach
*** 这里有一个断点***
0.00s - 调试器警告:似乎正在使用冻结的模块,这可能 0.00s - 使调试器错过断点。请传递 -Xfrozen_modules=off 0.00s - python 禁用冻结模块。 0.00s - 注意:调试将继续。设置 PYDEVD_DISABLE_FILE_VALIDATION=1 以禁用此验证。