Thanks to all for some great links. Some random comments from my perspective:
I have been aware of Opensees for many (at least 20) years and I have always been surprised it doesn't get more attention as a general purpose FEA package.
A Python interface for Opensees has been available since 2018 and is under active development. I have yet to look at it in detail, but it is fairly high on my to-do list. See:
PyNite looks very interesting, and is also on my todo list (and looking at my data folder installation dates, has been since October 2020).
For those wanting to focus on the efficient use of existing software, rather than coding the FEA process itself, it is definitely worth looking at what can be done with the API for commercial packages. I use the Strand7 API to link to Excel with both VBA and Python for both model generation and extracting output. Once some basic input and output functions are set up I find it greatly increases efficiency.
At the other extreme, if you want to code the analysis process itself using Python it is definitely worth looking at the pyPardiso package:
This is now simple to install with pip and works seamlessly with Scipy, providing much better performance than any of the Scipy sparse solvers. It also monitors changes to the stiffness matrix automatically, so the optimum solution process is used automatically with no additional coding.
Doug Jenkins
Interactive Design Services