Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
en:debugging_of_scripts_with_visual_studio_2017 [2018/10/14 13:49] hlinke [Debugging Python Files with Visual Studio] |
en:debugging_of_scripts_with_visual_studio_2017 [2019/06/16 12:56] (aktuell) hlinke [Description of the Config parameters] |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Python Scripting for VEGAS Pro ====== | ====== Python Scripting for VEGAS Pro ====== | ||
- | ===== Debugging of Scripts | + | VEGASPython is embedded in VEGAS. This can create issues for some Python debuggers. |
+ | I am using the WING Python IDE [[https:// | ||
+ | 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 | ||
- | The interactive VEGASPython Window is only foreseen for very short scripts needing a few lines. | + | ===== Debugging using WING Python |
- | For longer scripts it is proposed to use a Python | + | |
- | 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. | + | For debugging VEGASPython scripts with WING IDE please follow following steps: |
- | This seems to be a disadvantage. But: Due to the interpretation | + | - copy the file wingdbstub.py from the wing IDE program directory |
+ | - open wingdbstub.py and change the line: " | ||
+ | - add the following line at the begin of the python code: " | ||
+ | - 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 " | ||
- | Especially | + | Load the Python Script into Wing IDE and set breakpoints. |
- | With VEGASPython, | + | Start the script from VEGAS extension menu. (It is not possible |
- | 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). | + | When you do changes to the script VEGAS needs to be restarted |
- | You can use the free community version of Visual Studio 2017. And with Python | + | |
- | ==== Visual Studio Installation | + | ===== The VEGASPYTHON Config File ===== |
- | Here is what you have to do to setup your editing system for VEGASPython: | + | In the main directory where you extarcted the ZIP file you will find the file VEGASPython_CONFIG.JSON. |
+ | This file provides important config parameters | ||
- | - Download Microsoft Visual Studio 2017 community edition: [[https:// | + | This is the content of the file: |
- | - Install Visual Studio | + | |
- | - When the Installer asks: which development invironment should be installed? - select " | + | |
- | - Take for all other questions the standard answer | + | |
+ | { | ||
+ | | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | } | ||
- | ==== Editing Python Files with Visual Studio ==== | + | If you are familiar |
- | Open Visual Studio | + | |
- | A Window like the following one will open: | + | ==== 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:vegaspython14b.jpg? | + | Example: |
+ | " | ||
- | If you are not familiar with Visual Studio, this start page may overload you. | + | If the parameter is empty |
- | 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" | + | Do not forget |
- | New scripts I usually place in the " | + | |
- | {{: | + | === debugmode=== |
+ | debugmode is the main switch for the debugging parameters. | ||
- | + | " | |
- | {{:en: | + | |
- | {{: | + | The debug parameters are ignored |
- | In this example we select the file test.py that is located in the sub-directory | + | "debugmode": true |
+ | The debug parameters are used. | ||
- | {{: | + | === 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. | ||
- | After opening the file, you can edit the file now in the Visual Studio Editor. | + | Example: |
- | {{:en: | + | " |
- | ==== Debugging | + | Imports the wingdbstub.py that is needed by WING Python |
- | Visual Studio can do much more for us that only editing | + | === debugpostcmd === |
- | You can set breakpoints at every line of the script | + | Defines Python commands |
+ | Here you can add commands that are needed | ||
- | {{:en: | + | Example: |
- | To start the debugging, start VEGAS and load your test project. | + | " |
- | When VEGAS is started, we now have to tell Visual Studio, which program it has to monitor. | + | === debugusereload === |
- | We do this by opening | + | As explained above you need to restart |
- | The following window opens: | + | |
- | {{: | + | To avoid this restart and reduce the turn arround times VEGASPython can use the " |
- | Search | + | Reloading a module is not a clean concept and can create some issue. Please read the chapter reload() |
- | Select it and click on the " | + | [[https:// |
- | {{:en: | + | example: |
- | From now on Visual Studio monitors what Vegas is doing. | + | " |
- | When we look into Visual Studio it shows now the break points with an empty circle. This shows that the script was not started yet. | ||
- | {{: | ||
- | Now we can start the " | ||
- | We open it the same way we open all Python scripts. | ||
- | {{:en: | + | " |
- | 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. | ||
- | {{: | ||
- | With the key " | ||
- | {{: | ||
- | And we can even inspect variables. But unfortunately this inspection is only possible for local variable in functions. | ||
- | {{: | ||
- | {{: | ||