Python is a portable, interpreted, interactive, object-oriented programming
language popular for both standalone and Web applications. It provides
constructs that enable clear programming of small and large scale software
applications.
https://www.python.org/
Version 2 has been available to Alpha and Itanium VMS for a couple of
decades, initially due to the porting efforts of Jean-François Piéronne
(JFP), and now with a company sponsored VSI version 3 port for both Itanium
and x86-64 (no Alpha -- version 2 continues to be available from some VMS
sites for those remaining on the platform).
https://vmssoftware.com/products/python/
WASD has long had a Run-Time Envrionment (RTE) for Python
https://wasd.vsm.com.au/wasd_root/wasdoc/scripting/#runtimeenvironments
providing a low-latency, internal byte-code compiling and caching, scripting
engine for Python. Again, initially encouraged and refined by JFP, this RTE
continues to provide Python for users of WASD.
https://wasd.vsm.com.au/wasd_root/src/python/readmore.html
The Python 3 product from VSI is a completely new port and comes with some
considerations
https://wiki.vmssoftware.com/VMS_Python_compatibility_issues
There are of course the VMS-specific modules and capabilities initially
provided by the JFP packages
https://wiki.vmssoftware.com/VMS-Specific_Python_Modules
Those for whom continuing punishment is a life-choice, the VSI Python 3 code
repository can be found at
https://github.com/vmssoftware/cpython/tree/openvms-3.10.0/
https://github.com/vmssoftware/cpython/tree/openvms-3.10.0/vms
PyRTE is now concentrating on version 3 but still can/should be compiled for
version 2. Object modules are provided only for version 3. Download from
the usual repository
https://wasd.vsm.com.au/wasd/
Alternatively, look for an earlier version (perhaps for Python 2) using
https://wasd.vsm.com.au/wasd_archive/py*.*
TIP: As a runtime enhancement, when a program is executed by Python 3, the
interpreter compiles it to bytecode first (oversimplification) and stores it
in a subdirectory named __pycache__. In that there are files sharing the
names of the .py files in the parent directory, with the extensions either
.pyc or .pyo. PyRTE uses any pre-compiled byte code (files) if present but
DOES NOT GENERATE these (reason; it compiles bytecode into memory as a
cache). However, any command-line or other bytecode generated by an
alternate account (e.g. SYSTEM) may generate a slew of protection alarms due
to the scripting account not having access. After bytecode compilation
ensure access to the account(s) using the code. Bytecode generation can be
suppressed by using the -B switch at the command-line or setting the manifest
PYTHONDONTWRITEBYTECODE environment variable (symbol or logical name).
This item is one of a collection at
https://wasd.vsm.com.au/other/#occasional
|