-
Notifications
You must be signed in to change notification settings - Fork 9
Open
Description
This is tangential to #12 and #13 but not entirely the same.
Details:
- QGIS LTR 3.34.5-Prizren
- OSX: Sonoma 14.4.1
- VSCode: Version: 1.88.0
- VSCode Python Extension: v2024.4.0
- VSCode Python Debugger Extension: v2024.4.0
The problems:
- When I click the button in this plugin it pops open a completely new instance of QGIS... which is very weird. I never found out why that was happening.
- I did see an error relating to
cannot import name 'absolute_path' from 'pydevd_file_utils' (but I found that it was a conflict withptvsdand that removingptvsdsolved that issue. - It seems like debugpy needs to be configured with the python executable path (which is sirprisingly difficult to find because sys.executable gives you the
/Applications/QGIS-LTR.app/Contents/MacOS/QGISfolder which is not helpful)
My workarounds:
- Make sure
debugpyis installed using/Applications/QGIS-LTR.app/Contents/MacOS/bin/pip3 install debugpy - uninstall
ptvsdcompletely using/Applications/QGIS-LTR.app/Contents/MacOS/bin/pip3 uninstall ptvsd
Here's what I baked into my plugin to get it working again. I'm triggering the debugger on an environment variable called RS_DEBUG being set to True.
def _enable_debug(self):
debug_port = 5678
debug_host = "localhost"
DEBUG_ON = os.environ.get("RS_DEBUG", "False").lower() == "true"
if not DEBUG_ON:
return
if self.debugpy is None:
try:
import debugpy
self.debugpy = debugpy
except:
pass
if self.debugpy is None:
return
else:
try:
python_path = os.path.join(Path(os.__file__).parents[2], 'bin', Path(os.__file__).parent.name)
# NOTICE THAT I NEED TO CONFIGURE IT HERE!!!!!
debugpy.configure(python=python_path)
except Exception as e:
raise e
msgPort = f'"request": "attach", "Port": {debug_port}, "host": "{debug_host}"'
if self.debugpy.is_client_connected():
return
else:
t_, new_port = self.debugpy.listen((debug_host, debug_port))then using the following in my launch.json file inside vscode I was able to get a client connecting and breakpoints firing again.
{
"version": "0.2.0",
"configurations": [
{
"name": "QGIS Debug",
"type": "debugpy",
"request": "attach",
"connect": {
"host": "localhost",
"port": 5678
},
"pathMappings": [
{
"localRoot": "${workspaceFolder}",
"remoteRoot": "${workspaceFolder}",
}
],
"justMyCode": true
},
]
}Metadata
Metadata
Assignees
Labels
No labels