In QGIS install the plugin debugvs
.
The debugvs
plugin needs the python module ptvsd
to function. This module is not installed by default.
In principle you just pip install ptvsd
in the python interpreter used by QGIS.
I am using the QGIS OSX installer from Lutra Consulting. This installer works really great, but installing additional python modules is not very easy.
What I did was this:
- Download the
ptvsd
wheel from pypi. I tried with the newest version (4.2.4), but that didnt work for me. I ended up using ptvsd-4.1.4.zip. - Unzip the wheel (if it has the extension
.whl
then rename it to.zip
) - Inside the zip there are two directories. Copy the directory
ptvsd
to theResources/python
of your QGIS installation. In my case this was/Applications/QGIS3.6.app/Contents/Resources/python/
.
Restart QGIS.
The default remote debugger configuration in VS Code looks like this
{
"name": "Python: Remote Attach",
"type": "python",
"request": "attach",
"port": 5678,
"host": "localhost",
"pathMappings": [
{
"localRoot": "${workspaceFolder}",
"remoteRoot": "."
}
]
},
I had to change the pathMappings
to get it to work:
{
"name": "Python: Remote Attach",
"type": "python",
"request": "attach",
"port": 5678,
"host": "localhost",
"pathMappings": [
{
"localRoot": "${workspaceFolder}",
"remoteRoot": "${workspaceFolder}"
}
]
},
- In QGIS click
Plugins -> Enable Debug for Visual Studio -> Enable Debug for Visual Studio
- You should now see a message in the QGIS message bar saying something like
DebugVS : Run the Debug in Visual Studio(Python:Attach)
- In VS Code start debugging using the
Python: Remote Attach
configuration defined above.
Now you should be able to set breakpoints in VS Code.
@stelf
In VSCode:
I open the plugin code directory. This could for instance be
/Users/asger/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/timemanager
Select a Python interpreter. I have not found a way to select the interpreter used in QGIS, so I just select a generic python3 interpreter.
In
Debug panel
clickAdd Configuration...
in the configuration drop down.When VSCode Asks for an Environment select
Python
.Then VSCode shows a
Select a debug configuration
dropdown where you selectRemote Attach
.VSCode asks for a host name. Just use
localhost
Lastly you are asked for a port number. Use
5678
. Now VSCode should have aPython: Remote Attach
option in the debug configurations drop down .You need to change the
pathMappings
in the configuration manually. Click the cogwheel next to the configurations drop down and edit thepathMappings
like described above.In QGIS
Open QGIS and activate TimeManager plugin. Click the
debugvs
button.Back in VSCode
In VSCode select
Python: Remote Attach
option in the debug configurations drop down and click the "play" button next to it.Now your debugger should be attached to QGIS.