When your debug type is "debugpy" in the config, the debugging can be detected in sys.modules.
launch.json
{
"configurations": [
{
"name": "Python Debugger: Module",
"type": "debugpy",
"request": "launch",
"module": "app.main"
}
]
}
app/main.py
def check_is_debug_attached():
for module in sys.modules.values():
if module.__name__ == 'debugpy':
print('Debugger is attached')
return True
print('Debugger is not attached')
return False
if __name__ == '__main__':
is_debug_attached = check_is_debug_attached()
print(f'is_debug_attached: {is_debug_attached}')