PyScripter 4.3.4 is now available at Sourceforge. It is hotfix release that has replaced version 4.3.3. It fixes an issue an incompatibility with python versions older than 3.10. There is no need to upgrade if you a more recent version of python.
Wednesday, November 8, 2023
Monday, October 30, 2023
PyScripter v4.3.3 released
PyScripter 4.3.3 is now available at Sourceforge. It is hotfix release that has quietly replaced version 4.3.2. It is recommended that you upgrade to this new version. It fixes an issue with the input function in python 12.
Sunday, October 29, 2023
PyScripter v4.3.2 released
PyScripter 4.3.2 is now available at Sourceforge. It is hotfix release that has quietly replaced version 4.3.1. It is recommended that you upgrade to this new version. Besides a few bug fixes and stability improvements, it adds an exciting new feature “Variable Inspectors”.
Saturday, October 28, 2023
Feature preview: Variable Inspectors
Variable inspectors, also known as debug visualizers, allow you to visually inspect variables of certain data types. Let’s start with an example.
The Variables window got a new column highlighted in red above. A magnifying glass is shown for variables that can be inspected. Clicking this magnifying glass, opens a window that provides a visual view of that variable, in this case a pandas dataframe:
In this window you can view the data in tabular form, show summary statistics and create a wide range of graphs.
This feature is also available for variables you create in the interpreter window. Initially, inspectors are provided for numpy 1 and 2-dimensional arrays, numpy matrices and pandas dataframes. These inspectors are based on the pandastable package, which you need to install using pip for the inspector to work. However, since variable inspectors are based on python code, you can create your own visualisers or modify existing ones
Under the hood
The installer creates a new subdirectory “Variable Inspectors” under %ALLUSERSPROFILE%\PyScripter (typically C:\ProgramData\PyScripter) and installs the factory provided inspectors in this folder. PyScripter creates another “Variable Inspectors” folder under %APPDATA%\PyScripter (typically C:\Users\UserName\AppData\Roaming\PyScripter). In the latter you can create your own inspectors. Registry free installations get instead just one “Variable Inspectors” folder under the root folder containing PyScripter.exe.
Each inspector is located in a subfolder of the “Variable Inspectors” folder. The name of the subfolder is not important, but its contents are. At a minimum this subfolder should contain two files:
- handled_classes.text
- main.py
The first one contains a list of python classes that can be handled by the inspector in the form module_name.class_name. The python file “main.py” contains code that:
- Checks that its dependencies are installed. If not, it provides an informative message box.
- Loads a pickled value from a file name that is provided as the first command line parameter.
- Checks that the provided value is of a supported type and then provides a visual inspection of that value.
It is recommended that a third file “requirements.txt” is also included, listing the package dependencies of the inspector. The user has to make sure that these dependencies are installed via pip (could be automated in the future).
Monday, October 23, 2023
PyScripter 4.3.1 released
PyScripter 4.3.1 is now available at Sourceforge. It is hotfix release that has quietly replaced version 4.3.0. It is recommended that you upgrade to this new version.
Friday, October 13, 2023
PyScripter 4.3.0 released
PyScripter 4.3.0 is now available at Sourceforge. This release provides support for python 12 as well as other new features, enhancements and bug fixes:
New features:
- Python 3.12 support
- Improved multi-monitor support (per monitor DPI awareness)
- Customizable user interface content font size (#1209)
- Screen reader support in the editor
Issues addressed:
Friday, July 21, 2023
Preview of the upcoming PyScripter version
I have been busy preparing the next version of PyScripter. Apart from bug fixes, this version improves the support of multiple monitors (per monitor DPI awareness) and accessibility, (support for screen readers in the editor), but also brings compatibility with python 3.12 which is still in beta.
If you are using multi-monitor setups, it would be helpful to test the preview version 4.2.9. This zip file contains just the PyScripter executable. You just replace the executable in a 4.2 distribution with the one in the zip file. Please report any issues to the PyScripter issue tracker.
Monday, June 5, 2023
Using PyScripter with QGIS
This is a solution contributed by Andreas (github user name amr). For a complete integration of PyScripter with QGIS you need two things:
- Batch-File: The following is for the LTR-version of QGIS. It is a modified version of the existing python-qgis-ltr.bat in the folder "OSGeo4W\bin". Some changes were made to it, essentially using absolute paths to both the OSGeo4W and PyScripter installation folders. Please change the paths, if yours differ!
- Start-Script for the Python-Interpreter: It uses the path variable and adds each path to the DLL-search path. Store this as "sitecustomize.py" into the folder OSGeo4W\apps\Python39
@echo off :: path for OSGeo4W/QGIS set O4W=C:\OSGeo4W :: path for PyScripter set PYSC=C:\Program Files\PyScripter :: changed start procedure call "%O4W%\bin\o4w_env.bat" @echo off :: add python dir to path path %OSGEO4W_ROOT%\apps\qgis-ltr\bin;%OSGEO4W_ROOT%\apps\Python39;%PATH% set QGIS_PREFIX_PATH=%OSGEO4W_ROOT:\=/%/apps/qgis-ltr set GDAL_FILENAME_IS_UTF8=YES rem Set VSI cache to be used as buffer, see #6448 set VSI_CACHE=TRUE set VSI_CACHE_SIZE=1000000 set QT_PLUGIN_PATH=%OSGEO4W_ROOT%\apps\qgis-ltr\qtplugins;%OSGEO4W_ROOT%\apps\qt5\plugins set PYTHONPATH=%OSGEO4W_ROOT%\apps\qgis-ltr\python;%PYTHONPATH% :: start PyScripter start "PyScripter" /B "%PYSC%\PyScripter.exe" --PYTHON39 --pythondllpath=%OSGEO4W_ROOT%\apps\python39 %*
#sitecustomize.py import os for p in os.getenv("PATH").split(";"): if os.path.exists(p): os.add_dll_directory(p)