Fix macOS dependency conflict

This commit is contained in:
liyikradlee 2026-04-12 14:05:19 +08:00
parent 4791133e11
commit 874badae69
5 changed files with 15 additions and 7 deletions

View file

@ -37,9 +37,15 @@ Set `"mode": "server"` in `openspace/config/config_grounding.json`:
<summary><b>macOS</b></summary>
```bash
pip install pyobjc-core pyobjc-framework-cocoa pyobjc-framework-quartz atomacos
pip install pyobjc-core pyobjc-framework-cocoa pyobjc-framework-quartz
```
`atomacos` is not included in the default macOS dependency set right now because
its published releases require `pyautogui<0.9.42`, which conflicts with
OpenSpace's `pyautogui>=0.9.54`. OpenSpace will still run without it, but the
macOS accessibility-tree features will stay unavailable until that upstream
constraint is resolved.
**Permissions required** (macOS will prompt automatically on first run):
- **Accessibility** (for GUI control)
- **Screen Recording** (for screenshots and video capture)

View file

@ -20,7 +20,8 @@ class MacOSAdapter:
global _warning_shown
if not MACOS_LIBS_AVAILABLE and not _warning_shown:
logger.warning("macOS libraries are not fully installed, some features may not be available")
logger.info("To install missing libraries, run: pip install pyobjc-framework-Cocoa atomacos")
logger.info("To install missing libraries, run: pip install pyobjc-core pyobjc-framework-Cocoa pyobjc-framework-quartz")
logger.info("Note: atomacos is currently optional because its published versions conflict with pyautogui>=0.9.54")
_warning_shown = True
self.available = MACOS_LIBS_AVAILABLE
@ -719,4 +720,4 @@ class MacOSAdapter:
except Exception as e:
logger.error(f"Failed to get terminal output: {e}")
return None
return None

View file

@ -8,7 +8,8 @@ requests>=2.32.0
# pyobjc-core>=12.0; sys_platform == 'darwin'
# pyobjc-framework-cocoa>=12.0; sys_platform == 'darwin'
# pyobjc-framework-quartz>=12.0; sys_platform == 'darwin'
# atomacos>=3.2.0; sys_platform == 'darwin'
# atomacos is intentionally excluded for now: atomacos 3.2+/3.3 requires
# pyautogui<0.9.42, which conflicts with OpenSpace's pyautogui>=0.9.54.
# # Linux-specific dependencies (local server)
# python-xlib>=0.33; sys_platform == 'linux'
@ -18,4 +19,4 @@ requests>=2.32.0
# # Windows-specific dependencies (local server)
# pywinauto>=0.6.8; sys_platform == 'win32'
# pywin32>=306; sys_platform == 'win32'
# PyGetWindow>=0.0.9; sys_platform == 'win32'
# PyGetWindow>=0.0.9; sys_platform == 'win32'

View file

@ -34,7 +34,6 @@ macos = [
"pyobjc-core>=12.0",
"pyobjc-framework-cocoa>=12.0",
"pyobjc-framework-quartz>=12.0",
"atomacos>=3.2.0",
]
linux = [

View file

@ -19,7 +19,8 @@ requests>=2.32.0
# pyobjc-core>=12.0; sys_platform == 'darwin'
# pyobjc-framework-cocoa>=12.0; sys_platform == 'darwin'
# pyobjc-framework-quartz>=12.0; sys_platform == 'darwin'
# atomacos>=3.2.0; sys_platform == 'darwin'
# atomacos is intentionally excluded for now: atomacos 3.2+/3.3 requires
# pyautogui<0.9.42, which conflicts with OpenSpace's pyautogui>=0.9.54.
# # Linux-specific dependencies (local server)
# python-xlib>=0.33; sys_platform == 'linux'