Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte Überarbeitung Beide Seiten der Revision
en:debugging_of_scripts_with_visual_studio_2017 [2019/06/10 15:52]
hlinke [Python Scripting for VEGAS Pro]
en:debugging_of_scripts_with_visual_studio_2017 [2019/06/16 12:48]
hlinke [Description of the Config parameters]
Zeile 1: Zeile 1:
 ====== Python Scripting for VEGAS Pro ====== ====== Python Scripting for VEGAS Pro ======
 +
 +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.
  
 ===== Debugging using WING Python IDE ===== ===== Debugging using WING Python IDE =====
  
-Debugging with Visual Studio is still possible but not recommended anymore. +For debugging VEGASPython scripts with WING IDE please follow following steps:
- +
-I recommend the Wing Python IDE [[https://wingware.com/]]. +
- +
-There is a free version (WING IDE Personal) for non-comercial use and a professional version available. +
- +
-For debugging Pythondeo with WING IDE please follow following steps:+
  
   - copy the file wingdbstub.py from the wing IDE program directory to the VEGASPython_PN directory, where your VEGASPython code is located.   - copy the file wingdbstub.py from the wing IDE program directory to the VEGASPython_PN directory, where your VEGASPython code is located.
-  - add the following line at the begin of theh python code: "import wingdbstub"+  - open wingdbstub.py and change the line: "kEmbedded = 0" to "kEmbedded = 1" 
 +  - add the following line at the begin of the python code: "import wingdbstub"
   - Turn on listening for externally initiated debug connections in Wing, which is most easily done by clicking on the bug icon in the lower left of the main window and selecting "Accept Debug Connections" in the popup menu that appears.   - Turn on listening for externally initiated debug connections in Wing, which is most easily done by clicking on the bug icon in the lower left of the main window and selecting "Accept Debug Connections" in the popup menu that appears.
  
 Load the Python Script into Wing IDE and set breakpoints. Load the Python Script into Wing IDE and set breakpoints.
-Start the script from VEGAS menu. (It is not possible to debug interactive scripts from the interactive window) 
- 
- 
- 
- 
-===== Debugging of Scripts with Visual Studio 2017 ===== 
- 
-The interactive VEGASPython Window is only foreseen for very short scripts needing a few lines. 
-For longer scripts it is proposed to use a Python Script Editor that supports the writing of Python code. 
-But this is not all. It is very unusual that the script you have written is working correctly from the start. 
-There are always small things that are wrong - especially simple typos or logical flow errors. 
- 
-As PYTHON is an interpreted language, most erros can only be found when the script is executed.  
- 
-This seems to be a disadvantage. But: Due to the interpretation of the script at runtime the turn arround times frem chnaging the script to seeing the results or error is much faster than in other languages. 
- 
-Especially the startup time of VEGAS and opening a test project can take a lot of time. 
- 
-With VEGASPython, Vegas stays open with the test project all the time. You only have to restart the script for testing after you updated it. 
- 
-It may be surprising but the best support for VEGASPython editing and debugging is provided by Microsoft Visual Studio 2017 (this is the current version). 
-You can use the free community version of Visual Studio 2017. And with Python you can use Visual Studio as a simple editor and debugger. You do not have to deal with all the other complex development project setups. 
- 
-==== Visual Studio Installation ==== 
-Here is what you have to do to setup your editing system for VEGASPython: 
- 
-  - Download Microsoft Visual Studio 2017 community edition: [[https://visualstudio.microsoft.com/de/downloads/]] 
-  - Install Visual Studio 
-  - When the Installer asks: which development invironment should be installed? - select "Python" (if you want to use other environemnts too, feel free to add them) 
-  - Take for all other questions the standard answer 
- 
- 
-==== Editing Python Files with Visual Studio ==== 
-Open Visual Studio 
- 
-A Window like the following one will open: 
- 
-{{:en:vegaspython14b.jpg?direct&400|}} 
  
-If you are not familiar with Visual Studio, this start page may overload you. +Start the script from VEGAS extension menu(It is not possible to debug interactive scripts from the interactive window)
-With Python you do not have to bother with creating a project and define all the parameters. +
-We will use Visual Stduio only as an Editor.+
  
-So the only step we are doing: We go to the "File" Menu and open an existing Scripfile or create a new Scripfile. +When you do changes to the script VEGAS needs to be restarted to load the updated script.
-New scripts I usually place in the "Test" subdirectory of VEGASPYTHON. So the new script shows up in Vegas in the scrit submenu "Test".+
  
-{{:en:vegaspython27b.jpg?direct&400|}}+===== The VEGASPYTHON Config File ===== 
 +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:
-{{:en:vegaspython27c.jpg?direct&400|}}+
  
-{{:en:vegaspython18a.jpg?direct&400|}}+{ 
 +     
 +    { 
 +    "PythonPath""", 
 +    "debugmode"false, 
 +    "debugprecmd": "import wingdbstub;print ('Wing Debug started')", 
 +    "debugpostcmd": "print ('Debug ended')", 
 +    "debugusereload": true 
 +    } 
 +}
  
-In this example we select the file test.py that is located in the sub-directory "testof the VEGASPython directory.+If you are familiar with JSON files you will know that the structure has to be maintainedOtherwise the parameters will not be recognized any more. Change value only between the "" or change true to false or viceversa.
  
 +==== Description of the Config parameters ====
 +=== PythonPath ===
 +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.
  
-{{:en:vegaspython28a.jpg?direct&400|}}+Example: 
 +"PythonPath""C:\\Python37"
  
-After opening the file, you can edit the file now in the Visual Studio Editor.+If the parameter is empty 
  
-{{:en:vegaspython19b.jpg?direct&400|}}+Do not forget to double "\" in the Path.
  
-==== Debugging Python Files with Visual Studio ====+=== debugmode=== 
 +debugmode is the main switch for the debugging parameters.
  
-Visual Studio can do much more for us that only editing the script. +"debugmode": false
-You can set breakpoints at every line of the script by clicking at the front of the line.+
  
-{{:en:vegaspython22b.jpg?direct&400|}}+The debug parameters are ignored
  
-To start the debugging, start VEGAS and load your test project.+"debugmode": true
  
-When VEGAS is started, we now have to tell Visual Studio, which program it has to monitor. +The debug parameters are used.
-We do this by opening the "Debug"-Menu and select the menu entry "Attach to process"+
-The following window opens:+
  
-{{:en:vegaspython23b.jpg?direct&400|}}+=== debugprecmd === 
 +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.
  
-Search in this wondow for "Vegas160.exe" or similar depending on the Vegas version you are running. +Example:
-Select it and click on the "Attach"-Button.+
  
-{{:en:vegaspython24a.jpg?direct&400|}}+"debugprecmd""import wingdbstub;print ('Wing Debug started')"
  
-From now on Visual Studio monitors what Vegas is doing.+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.
  
-When we look into Visual Studio it shows now the break points with an empty circleThis shows that the script was not started yet.+=== debugpostcmd === 
 +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.
  
-{{:en:vegaspython29a.jpg?direct&400|}}+Example:
  
-Now we can start the "testScript. +"debugpostcmd": "print ('Debug ended')",
-We open it the same way we open all Python scripts.+
  
-{{:en:vegaspython30b.jpg?direct&400|}} 
  
  
-When the script started and we have set a break pint in the script, Visual Studio stops the script, when the script reaches the breakpoint. 
  
-{{:en:vegaspython31a.jpg?direct&400|}} 
  
-With the key "F10" we can now setp through the script. 
  
-{{:en:vegaspython32a.jpg?direct&400|}} 
  
-And we can even inspect variables. But unfortunately this inspection is only possible for local variable in functions. 
  
  
-{{:en:vegaspython33a.jpg?direct&400|}} 
  
-{{:en:vegaspython34a.jpg?direct&400|}} 
  
  

Andere Sprachen
QR-Code
QR-Code en:debugging_of_scripts_with_visual_studio_2017 (erstellt für aktuelle Seite)