Hi all,
I am using Spyder (5.2.2; Python 3.9.10) to run PsychoPy (in a dedicated Conda environment) on my M1 MacBook (Monterey, 12.0.1), but I cannot exit experiments using core.quit(). The experiment works fine using the PsychoPy coder. For reference, my Spyder preferences for Run > Console are set to “Execute in a dedicated console”.
This is the traceback I am seeing when I try to use a quit function which relies on core.quit() (this function is defined further down):
Exception ignored on calling ctypes callback function: <function ObjCSubclass.method.<locals>.decorator.<locals>.objc_method at 0x171862ee0>
Traceback (most recent call last):
File "/Users/josh/opt/anaconda3/envs/psychopyenv/lib/python3.9/site-packages/pyglet/libs/darwin/cocoapy/runtime.py", line 1141, in objc_method
result = f(py_self, *args)
File "/Users/josh/opt/anaconda3/envs/psychopyenv/lib/python3.9/site-packages/pyglet/window/cocoa/pyglet_view.py", line 199, in pygletKeyDown_
self._window.dispatch_event('on_key_press', symbol, modifiers)
File "/Users/josh/opt/anaconda3/envs/psychopyenv/lib/python3.9/site-packages/pyglet/window/__init__.py", line 1333, in dispatch_event
if EventDispatcher.dispatch_event(self, *args) != False:
File "/Users/josh/opt/anaconda3/envs/psychopyenv/lib/python3.9/site-packages/pyglet/event.py", line 415, in dispatch_event
if getattr(self, event_type)(*args):
File "/Users/josh/opt/anaconda3/envs/psychopyenv/lib/python3.9/site-packages/psychopy/visual/backends/pygletbackend.py", line 434, in onKey
event._onPygletKey(evt, modifiers)
File "/Users/josh/opt/anaconda3/envs/psychopyenv/lib/python3.9/site-packages/psychopy/event.py", line 233, in _onPygletKey
_process_global_event_key(thisKey, modifiers)
File "/Users/josh/opt/anaconda3/envs/psychopyenv/lib/python3.9/site-packages/psychopy/event.py", line 254, in _process_global_event_key
r = event.func(*event.func_args, **event.func_kwargs)
File "/Users/josh/Documents/Other Documents/Internship/AlexExp/First attempt (1).py", line 306, in quitfunction
core.quit()
File "/Users/josh/opt/anaconda3/envs/psychopyenv/lib/python3.9/site-packages/psychopy/core.py", line 88, in quit
sys.exit(0) # quits the python session entirely
SystemExit: 0
Quit function:
def quitfunction():
print("---Global quit key pressed!---")
core.quit()
event.globalKeys.add(key="p", func=quitfunction)
Thanks in advance!