What is the state of Python 3.10 support?

TL/DR: Should PsychoPy work with Python 3.10 or are there plans to get it to work?

I have been having problems running PsychoPy with Python 3.10 on Arch Linux. I would like to get my lab machines updated as well as updating the Arch package. I am happy to debug and submit patches as I find bugs.

The Developer Install says to ensure you have Python 3.6 installed which is now past end of life. A couple of months ago there was a commit to the release branch suggesting support for Python 3.10. I just installed the head of the release branch and get no joy with Python 3.10.

I can trace the issue back to a bug in the seemingly dead macropy project via the seemingly dead javascripton project. It seems like development of these projects ended with Python version 3.5.

In the new release 2022.1.0 (it’s actually available but not publicised) we’ve made Py3.8 the main target and that’s what’s provided in the standalone distributions. I’ll update the recommendation accordingly. As you say, 3.6 is now end-of-life, and we are no longer working on that.

Regarding Python upgrades in general, the reason that PsychoPy has always been slow to update to the latest releases of Python is that we have a very large number of dependencies and although we can get our own code into a compatible state that doesn’t mean the other libraries reach the same. Hardware manufacturers especially fall into this category since they often have to build specific releases for each Python version due to changing compiler compatibilities.

For macropy, we don’t call it directly but we use metapensiero for translating user-defined Python code into JS. Metapensiero is still maintained so we could ask that team how much macropy is strictly needed or could be circumvented. In the meantime, I guess we need to set better catches in the code so that if metapensiero is unavailable for whatever reason, the app should load but refuse to do Py-JS auto-translation with a suitable warning.

Thanks for the update. I found this discussion/issue regarding metapensiero https://github.com/psychopy/psychopy/issues/2757 Using the unreleased head of the metapensiero git branch removes the macropy dependency and solves that issue. Still cannot get Psychopy running on Linux with Python 3.10. Need to sit down with some dedicated time and figure out where I am actually stuck so I can submit helpful patches that would help PsychoPy fail gracefully when packages are unavailable.