VEGASPython is embedded in VEGAS. This can create issues for some Python debuggers. I am using the WING Python IDE https://wingware.com/. There is a free version (WING IDE Personal) for non-comercial use and a professional version available. Other debuggers may work as well, but I have not tested them. If you have experience with another debugger, please inform me and I will add this information to this chapter.
For debugging VEGASPython scripts with WING IDE please follow following steps:
Load the Python Script into Wing IDE and set breakpoints.
Start the script from VEGAS extension menu. (It is not possible to debug interactive scripts from the interactive window)
When you do changes to the script VEGAS needs to be restarted to load the updated script.
In the main directory where you extarcted the ZIP file you will find the file VEGASPython_CONFIG.JSON. This file provides important config parameters to support the debugging:
This is the content of the file:
{
{ "PythonPath": "", "debugmode": false, "debugprecmd": "import wingdbstub;print ('Wing Debug started')", "debugpostcmd": "print ('Debug ended')", "debugusereload": true }
}
If you are familiar with JSON files you will know that the structure has to be maintained. Otherwise the parameters will not be recognized any more. Change value only between the „“ or change true to false or viceversa.
as default Python is installed in the subdirectory \Python37 of the VEGASPython installation directory. This is good for users who do not want to deal with Python. If you have your own Python Installation(it must be Python 3.7.x) the you can here specify the directory where it resides.
Example: „PythonPath“: „C:\\Python37“
If the parameter is empty
Do not forget to double „\“ in the Path.
debugmode is the main switch for the debugging parameters.
„debugmode“: false
The debug parameters are ignored
„debugmode“: true
The debug parameters are used.
Defines Python commands that need to be executed before the start of the Python script. Here you can add commands that are needed by the debugger to start the debugging and connect with the embedded Python interpreter.
Example:
„debugprecmd“: „import wingdbstub;print ('Wing Debug started')“
Imports the wingdbstub.py that is needed by WING Python IDE to start the debugging. You can remove this when you do not use WING Python IDE.
Defines Python commands that need to be executed after the end of the Python script. Here you can add commands that are needed by the debugger to stop the debugging.
Example:
„debugpostcmd“: „print ('Debug ended')“
As explained above you need to restart VEGAS after any change in the Python script.
To avoid this restart and reduce the turn arround times VEGASPython can use the „reload“ command to load a script.
Reloading a module is not a clean concept and can create some issue. Please read the chapter reload() in the Python documentation before using this fundtion: https://docs.python.org/3/library/imp.html?highlight=reload#imp.reload
example:
„debugusereload“: true