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:20] hlinke [Debugging of Scripts with Visual Studio 2017] |
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 ====== | ||
- | ===== Python | + | VEGASPython is embedded in VEGAS. This can create issues for some Python |
+ | 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 with another debugger, please inform me and I will add this information to this chapter. | ||
- | ==== Debugging | + | ===== Debugging |
- | The interactive | + | For debugging |
- | For longer | + | |
- | 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 | + | - copy the file wingdbstub.py from the wing IDE program directory to the VEGASPython_PN directory, where your VEGASPython code is located. |
+ | - 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 " | ||
- | 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. | + | Load the Python Script into Wing IDE and set breakpoints. |
- | Especially | + | Start the script from VEGAS extension menu. (It is not possible to debug interactive scripts from the interactive window) |
- | With VEGASPython, | + | When you do changes |
- | 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). | + | ===== The VEGASPYTHON Config File ===== |
- | 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. | + | In the main directory where you extarcted |
+ | This file provides important config parameters | ||
- | === Visual Stduio Installation === | + | This is the content of the file: |
- | Here is what you have to do to setup your editing system for VEGASPython: | + | |
- | - Download Microsoft Visual Studio 2017 community edition: [[https:// | + | { |
- | - Install Visual Studio | + | |
- | - When the Installer asks: which development invironment should be installed? - select | + | { |
- | - Take for all other questions the standard answer | + | " |
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | } | ||
+ | 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 "" | ||
- | === Debugging with Visual Studio | + | ==== Description of the Config parameters |
- | Open Visual Studio | + | === 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. | ||
- | A Window like the following one will open: | + | Example: |
+ | " | ||
- | {{: | + | If the parameter is empty |
- | If you are not familiar with Visual Studio, this start page may overload you. | + | Do not forget |
- | 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 " | + | === debugmode=== |
+ | debugmode is the main switch for the debugging parameters. | ||
- | {{:en: | + | " |
- | + | The debug parameters are ignored | |
- | {{: | + | |
- | {{:en:vegaspython18a.jpg?direct& | + | " |
+ | |||
+ | 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. | ||
+ | |||
+ | Example: | ||
+ | |||
+ | " | ||
+ | |||
+ | 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. | ||
+ | |||
+ | === 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. | ||
+ | |||
+ | Example: | ||
+ | |||
+ | " | ||
+ | |||
+ | === debugusereload === | ||
+ | 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 " | ||
+ | |||
+ | 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:// | ||
+ | |||
+ | example: | ||
+ | |||
+ | " | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | " | ||
- | In this example we select the file test.py that is located in the sub-directory " | ||
- | {{: | ||
- | After opening the file, you can edit the fil ein the Visual Studio Editor. | ||
- | {{: | ||
- | {{: | ||
- | {{: | ||
- | {{: | ||
- | {{: | ||
- | {{: | ||