Similar to #563 , the setup tries to import code it cannot yet run. In this case, pyobjc is listed as a dependency, but Quartz is imported during setup.
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [10 lines of output]
Traceback (most recent call last):
File "<string>", line 2, in <module>
File "<pip-setuptools-caller>", line 34, in <module>
File "/private/var/folders/m5/fjrkxzd572x8b_46w998h8_m0000gn/T/pip-install-nz7pcvcn/keyboard_978449da599747b7904c7e06d575d304/setup.py", line 7, in <module>
import keyboard
File "/private/var/folders/m5/fjrkxzd572x8b_46w998h8_m0000gn/T/pip-install-nz7pcvcn/keyboard_978449da599747b7904c7e06d575d304/keyboard/__init__.py", line 240, in <module>
from. import _darwinkeyboard as _os_keyboard
File "/private/var/folders/m5/fjrkxzd572x8b_46w998h8_m0000gn/T/pip-install-nz7pcvcn/keyboard_978449da599747b7904c7e06d575d304/keyboard/_darwinkeyboard.py", line 3, in <module>
import Quartz
ModuleNotFoundError: No module named 'Quartz'
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
Similar to #563 , the setup tries to import code it cannot yet run. In this case, pyobjc is listed as a dependency, but Quartz is imported during setup.