From 874badae69119b6df09ad249971a4517b89e1e9d Mon Sep 17 00:00:00 2001 From: liyikradlee <190435513+liyikradlee@users.noreply.github.com> Date: Sun, 12 Apr 2026 14:05:19 +0800 Subject: [PATCH] Fix macOS dependency conflict --- openspace/local_server/README.md | 8 +++++++- openspace/local_server/platform_adapters/macos_adapter.py | 5 +++-- openspace/local_server/requirements.txt | 5 +++-- pyproject.toml | 1 - requirements.txt | 3 ++- 5 files changed, 15 insertions(+), 7 deletions(-) diff --git a/openspace/local_server/README.md b/openspace/local_server/README.md index 0e0f8d4..ca69ae2 100644 --- a/openspace/local_server/README.md +++ b/openspace/local_server/README.md @@ -37,9 +37,15 @@ Set `"mode": "server"` in `openspace/config/config_grounding.json`: macOS ```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) diff --git a/openspace/local_server/platform_adapters/macos_adapter.py b/openspace/local_server/platform_adapters/macos_adapter.py index db7d5f6..00d8028 100644 --- a/openspace/local_server/platform_adapters/macos_adapter.py +++ b/openspace/local_server/platform_adapters/macos_adapter.py @@ -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 \ No newline at end of file + return None diff --git a/openspace/local_server/requirements.txt b/openspace/local_server/requirements.txt index 5d67d69..e03319a 100644 --- a/openspace/local_server/requirements.txt +++ b/openspace/local_server/requirements.txt @@ -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' \ No newline at end of file +# PyGetWindow>=0.0.9; sys_platform == 'win32' diff --git a/pyproject.toml b/pyproject.toml index 06c199c..7e4a632 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,7 +34,6 @@ macos = [ "pyobjc-core>=12.0", "pyobjc-framework-cocoa>=12.0", "pyobjc-framework-quartz>=12.0", - "atomacos>=3.2.0", ] linux = [ diff --git a/requirements.txt b/requirements.txt index 6371308..a925686 100644 --- a/requirements.txt +++ b/requirements.txt @@ -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'