Psychopy NameError: name 'environmenttools' is not defined

OS : Win10
PsychoPy version : 2023.1.2
I want to have a mouse that clicks on one of five simultaniously shown images.
It did work in version 2022.2.5, but as soon as I updated to 2023.1.2 I have this issue.
I tried to look it up in the code, but don’t know why it refers to a class that does not seem to be defined.
This is the Error Code I got: ‘psychopy NameError: name ‘environmenttools’ is not defined’

Any help would be appreciated. I updated psychopy, because I have issues synching my project to Pavlovia and I thought this might help, but now it doesn’t even run locally anymore.

Thank you for your time!

3 Likes

Update: I was able to solve the problem, by downgrading psychopy to 2023.1.1. I think there is an internal issue in ver 2023.1.2, that should be taken a look at by a dev for this platform. :slight_smile: Anyway in version 2023.1.1 everything runs smoothly and I was able to synch with pavlovia.

1 Like

Can any developers speak to when this might be fixed? Seems to be a substantial bug to leave lying around.

Adding to the list of people with this issue.
Standalone version of Psychopy 2023.1.2, MacOS Ventura 13.2.1, Apple M2 Chip.
Hopefully this can be fixed as it totally breaks using the builder.

Same issue, also when downgrading - “Alert 4051: Experiment was built in a future version of PsychoPy (2023.1.2), we recommend either updating PsychoPy or changing the “Use Version” setting in Experiment Settings to this version.”

I am getting the same error ‘psychopy NameError: name ‘environmenttools’ is not defined’

PsychoPy version : 2023.1.2
OS : MacOs

Maybe @jon knows something about this?

This was fixed in 2023.1.3 I believe

I’m having the same issue, and I have to use 2023.1.2 because the latter versions don’t work with my eye trackers.

I could handle this " name ‘environmenttools’ is not defined" by avoiding listing a set of clickables for the mouse (in builder). Just leave it blank. Instead, I added code

# begin rountine
clickables = [image1, image2, image3]

# each frame
for click in clickables:
     if mouse.isPressedIn(click):
              # do something, for example end the routine or something you want to do
              continueRoutine = False